特定のディレクトリにある次のイメージファイルの名前を変更したいと思います。
8 -rw-rw-r-- 1 6661 sep 24 10:28 dbConnectionOkBostjan.png
8 -rw-rw-r-- 1 6548 sep 24 10:29 dbConnectionErrorBostjan.png
8 -rw-rw-r-- 1 5708 sep 24 10:29 btConnectionErrorBostjan.png
8 -rw-rw-r-- 1 5911 sep 24 10:30 btConnectionOkBostjan.png
8 -rw-rw-r-- 1 6916 sep 24 10:31 userLogOkBostjan.png
8 -rw-rw-r-- 1 6924 sep 24 10:44 userLogErrorBostjan.png
これで、コマンドを使用してファイルの名前を変更する方法と複数のファイルのmv
名前を変更する方法もわかりますが、この場合は元のファイルと同じ新しい名前で各ファイルの名前を変更しますが、単語は除外したいと思いますBostjan
。たとえば、dbConnectionOkBostjan.png
名前を変更し、dbConnectionOk.png
他のすべてのファイルと同じでなければなりません。ターミナルを使用してこれをどのように実行できますか?この問題を解決するために一般的なコマンドを使用したいと思いますmv
。提案されたソリューションを使用する場合回答1、次のエラーが発生します。
user@testcomp:~/Pictures/testAppIcons$ for i in *Bostjan*; do mv $i $(echo $i | sed @Bostjan@@); done sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘btConnectionErrorBostjan.png’ Try 'mv --help' for more information. sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘btConnectionOkBostjan.png’ Try 'mv
--help' for more information. sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘dbConnectionErrorBostjan.png’ Try 'mv --help' for more information. sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘dbConnectionOkBostjan.png’ Try 'mv
--help' for more information. sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘userLogErrorBostjan.png’ Try 'mv --help' for more information. sed:
-e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘userLogOkBostjan.png’ Try 'mv --help' for more information. user@testcomp:~/Pictures/testAppIcons$
使っていますUbuntu 15.04。
ベストアンサー1
1行で書くこともできますが、読みやすくするために区別します。ファイル名をエコーし、mvのターゲット引数でsedを使用して変更します。
for i in *Bostjan*; do
mv $i $(echo $i | sed s@Bostjan@@)
done