文字列に括弧が含まれている場合のBash文字列の操作

文字列に括弧が含まれている場合のBash文字列の操作

templateというファイルでいっぱいのディレクトリがあります。

xxx[0-9][0-9][0-9[0-9]ss(wrx-mmm).zip

zipファイルにはファイルが含まれており、yrq000.datファイルを解凍するときにそのファイルを上書きしたくありません。

処理スクリプトを作成していますが、一般ファイルの名前をソースzipに関連付けられた名前で指定し、次の方法を確認します。

for f in $(ls xxx*)
do
  uniquename="${f%%(wrx.*zip}"
done

文字列から左角かっこを削除する方法がわかりません。

bash文字列操作は可能ですか?つまり、動作しません。正しく機能するには、何を追加または削除する必要がありますか?

答え1

パターンからドットを削除してみてください。例:

for f in xxx*;
do
    uniquename="${f%%(wrx*zip}";
    echo "${uniquename}";
done

形式の名前を持つファイルを取得し、xxx[0-9][0-9][0-9[0-9]ss(wrx-mmm).zip形式の文字列に変換しますxxx[0-9][0-9][0-9[0-9]ss。これがあなたが達成したいものですか?

関連情報