GNU/Linux >> Linux の 問題 >  >> Linux

ファイル拡張子をクリーンアップする方法は?

拡張子を.mp3に変更したい.MP3ファイルのあるディレクトリがあります。これを行う最も簡単な方法は何ですか?私は次のようなことを考えています:

find /RootPath -type f -iname "*.mp3" -exec mv {} sed s/.*MP3/1.mp3/ ; 

…それは正しくないことは知っていますが。 🙂置換が正しくなく、mvの両方を使用する方法がわかりません およびsed -execを使用したコマンド findで 。

このためにbashスクリプトが必要ですか?

承認された回答:

Bashでこれを行う1つの方法は次のとおりです:

for i in *; do [ "${i/%MP3/mp3}" != "$i" ] && echo "$i" "${i/%MP3/mp3}"; done

echoを使用しました ここでは、コマンド自体はファイル名のペアを出力する以外は何もしません。そのリストが必要な変更を表している場合は、echoを変更できます。 mv -i --のようなものに これにより、ファイルが移動します(上書きする前にプロンプ​​トが表示されます)。

簡単な説明:

for *に一致するすべてのファイルを反復処理します 。次に、拡張子がすでに小文字であるかどうかを判断します。小文字である場合は次に移動し、そうでない場合は移動に進みます(場合によってはエコーします)。これは、Bashの組み込みの文字列操作を使用します。これについては、http://tldp.org/LDP/abs/html/string-manipulation.html

を参照してください。
Linux
  1. ファイルをスパースにする方法は?

  2. ファイル内で \n を grep する方法

  3. ファイルをトランザクション的にコピーする方法は?

  1. Linuxでファイルの名前を変更するにはどうすればよいですか?

  2. ファイルにテキストを追加するにはどうすればよいですか?

  3. ファイルをその場でソートする方法

  1. Linuxでファイルを移動する方法

  2. Tar Gzファイルを抽出(解凍)する方法

  3. ファイルの内容を再帰的に表示するには?