Rename

Linux批量文件在特定位置重命名

  • November 29, 2019

我想重命名目錄中特定位置的所有文件。

原始文件樣本名稱:

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今天的日期,最後一部分是HHMMSS**,它也保持不變。

需要幫助,因為我是 Linux 新手。

如果您沒有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

另請注意,這假設文件名“行為良好”,因此特殊字元(不是您的範例的一部分)可能會導致此操作失敗。

引用自:https://unix.stackexchange.com/questions/554782