特定の場所のLinuxバッチの名前変更ファイル

特定の場所のLinuxバッチの名前変更ファイル

ディレクトリの特定の場所にあるすべてのファイルの名前を変更したいと思います。

元のファイルのサンプル名:

neif11_fastcredit_20190629101333.txt
neif11_fastcredit_20190629101334.txt
neif11_fastcredit_20190629101335.txt
neif11_fastcredit_20190629101336.txt
neif11_fastcredit_20190629101337.txt

名前を次に変更したいです。

neif11_fastcredit_20191129061333.txt
neif11_fastcredit_20191129061334.txt
neif11_fastcredit_20191129061335.txt
neif11_fastcredit_20191129061336.txt
neif11_fastcredit_20191129061337.txt

ファイル名について:

neif11_fastcredit_2019そのままにしておく必要があります。次の部分は月と日です。[MMDD]06291129今日の日付に更新したいのですが、最後の部分はうーんまた、変わらず維持されます。

私はLinuxを初めて使用するので、助けが必要です。

ベストアンサー1

利用可能なものがない場合は、rename次の(Bash)ループを試すことができますsed

user@host$ for FILE in *.txt; do NEWNAME=$(sed 's/_20190629/_20191129/' <<< "$FILE"); mv "$FILE" "$NEWNAME"; done

これにはBashが必要です。別のシェルがある場合は、次の方法を使用する必要があります。

user@host$ for FILE in *.txt; do NEWNAME=$(echo "$FILE" | sed 's/_20190629/_20191129/'); mv "$FILE" "$NEWNAME"; done

また、これはファイル名が「非常にうまく機能する」と仮定しているため、特殊文字(例の一部ではない)が原因でこれらのエラーが発生する可能性があります。

おすすめ記事