アプリケーションの config フォルダーで、すべての*.yml.sample
ファイルを*.yml
. 誰か助けてくれませんか?ターミナルを使用してこれを実行したい。これを行うための単一のコマンドはありますか?
質問する
2231 次
4 に答える
3
単純なシェル ループとbasename
コマンドを使用して、2 番目の拡張子を取り除きます。
for f in *.yml.sample; do
mv $f `basename $f .sample`
done
于 2012-06-19T10:18:16.843 に答える
2
それは簡単なmmv
ことです。
$ mmv "*.yaml.sample" "#1.yaml"
ここでは引用符が重要です。
于 2012-06-19T13:18:15.060 に答える
2
片道、使用sed
:
ls -1 *.yml.sample | sed "s%\(.*\).yml.sample%mv & \1.yml%" | sh
またはもっと簡単に:
ls -1 *.yml.sample | sed "s%\(.*\).sample%mv & \1%" | sh
編集:
ls
は便利ですが、スペースや改行などで解析が失敗する可能性があります。この場合、ループと bash 文字列の置換が最適です。
for i in *.yml.sample; do mv "$i" "${i%.sample}"; done
あなたのためのいくつかの読書:
Linux で複数のファイルの名前を変更する
ls の出力を解析してはいけない理由
HTH
于 2012-06-19T13:25:33.470 に答える
1
find . -iname "*.png" -exec bash -c 'mv "$0" "${0%\.png}@2x.png"' {} \;
これを使用して、現在のフォルダー内のすべてのファイルの名前を「.png」から「@2x.png」に変更しました。これは、Retina イメージに名前を付けるのに非常に便利です。iOS 開発者に広く使用されています。
于 2013-05-28T09:18:48.393 に答える