特定のファイル名を変更する

特定のファイル名を変更する

次のディレクトリにあるファイルの名前を変更する必要があります。

11-Vnnn_S2_L001_aaa_bbb_ccc_ddd.ext

到着

Vnnn.ext

basenameLinuxでコマンドを使用してこれを行う方法はありますか?

私はコーディングに初めて触れたので、いくつかの説明を喜んで提供します。

ベストアンサー1

簡単なループ:

for name in *.ext; do 
    newname=${name%%_*}.ext
    newname=${newname#*-}
    echo mv -- "$name" "$newname"
done

これは.ext現在のディレクトリで終わるすべての名前で繰り返されます(したがって、まずそのディレクトリに変更します)。これらの名前ごとに、変数は最初に名前のnewname最初の文字の前に設定され、最後に追加されます。次に、最初の文字の前の値を削除して最終値を作成します。_.ext-newname

ここで使用される2つの引数は、それぞれ値の終わりで最も長い一致部分文字列と最初から最も短い一致部分文字列を置き換えて削除します${variable%%pattern}${variable#pattern}pattern$variable

コマンドを実行してecho正しく機能していることを確認し、古い内容を削除echomvて実際にファイル名を変更してください。

おすすめ記事