C-Shell - ユーザー入力からワイルドカード文字を削除する

C-Shell - ユーザー入力からワイルドカード文字を削除する

c-shellスクリプトのユーザー入力テキストからワイルドカード文字を削除しようとしています。

データを保存する前に、シェルがすべてのワイルドカードを自動的に拡張することに気づきました。

ユーザー入力からワイルドカード以外の部分を分離する方法はありますか?

私もcシェルが最高のスクリプトシェルではないことに気づきました。残念ながら、スクリプトはすでに書かれているので、それを変えようとしています。

答え1

変数からすべて、*および?文字を削除するには、[次のようにします。]$input

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

関連情報