ディレクトリの特定の場所にあるすべてのファイルの名前を変更したいと思います。
元のファイルのサンプル名:
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]0629
1129
今日の日付に更新したいのですが、最後の部分はうーんまた、変わらず維持されます。
私は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
また、これはファイル名が「非常にうまく機能する」と仮定しているため、特殊文字(例の一部ではない)が原因でこれらのエラーが発生する可能性があります。