c-shellスクリプトのユーザー入力テキストからワイルドカード文字を削除しようとしています。
データを保存する前に、シェルがすべてのワイルドカードを自動的に拡張することに気づきました。
ユーザー入力からワイルドカード以外の部分を分離する方法はありますか?
私もcシェルが最高のスクリプトシェルではないことに気づきました。残念ながら、スクリプトはすでに書かれているので、それを変えようとしています。
答え1
変数からすべて、*
および?
文字を削除するには、[
次のようにします。]
$input
% set input = '**-[qwerty]-??'
% set stripped = $input:as/?//:as/*//:as/[//:as/]//:q
% printf '%s\n' $stripped:q
-qwerty-