Bashの逆参照

Bashの逆参照

私は以下を行うために「エレガントな」ソリューションを設計しようとしています。

unzip applications/<abc>.zip -d applications/<abc>/
unzip applications/<def>.zip -d applications/<def>/
unzip applications/<ghi>.zip -d applications/<ghi>/
unzip applications/<jkl>.zip -d applications/<jkl>/

中かっこ拡張は適用されません。これは私が探しているものと「反対」です(または何か抜けましたか?)。

ループがfor行く道ですか?私は過去のコントロール(
何と一緒にxargs引数を逆参照するか)を使用または活用することについて考えましたが、!:1状況はすぐに単純化されるのではなく複雑になりました。

私は正規表現の逆参照に偏っていると思います。シェルに似たものはありますか?

ベストアンサー1

いくつかの変数拡張規則を持つforループが必要に応じて機能することがあります。

for file in applications/*.zip
do
  unzip "$file" -d "${file%.zip}"
done

この表現は、「${file%.zip}最後からwithの内容を削除する」という意味です。$file.zip

したがって、最初のループは$file読みやすいapplications/abc.zipので${file%.zip}読みますapplications/abc

おすすめ記事