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