我正在尝试从 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-