C-Shell - 从用户输入中删除通配符

C-Shell - 从用户输入中删除通配符

我正在尝试从 c-shell 脚本中的用户输入文本中删除通配符。

我意识到 shell 在存储数据之前会自动扩展所有通配符。

有没有办法隔离用户输入的非通配符部分?

我还意识到 c-shell 并不是最好的脚本 shell。不幸的是,脚本已经写好了,我只是修改一下。

答案1

如果您想从某个变量中删除所有*?[和字符,您可以这样做:]$input

% set input = '**-[qwerty]-??'
% set stripped = $input:as/?//:as/*//:as/[//:as/]//:q
% printf '%s\n' $stripped:q
-qwerty-

相关内容