刪除檔案名稱中的前導字元直到達到特定模式

刪除檔案名稱中的前導字元直到達到特定模式

假設我有名為: 93162-117352 - May 24, 2017 345 PM_16_163_student.csv

我想將其重命名為: 16_163_student.csv

我該如何透過重命名來做到這一點?

答案1

您想要刪除檔案名稱中直到並包括第一個_.這與“中的要求類似,但更容易”一致地更改文件名

我的解決方案是(假設像 POSIX shell 這樣bash):

for name in *.csv; do
    mv -i -- "$name" "${name#*_}"
done

這將刪除名稱中${name#*_}第一個名稱之前的所有內容(包括名稱中的第一個名稱) 。_

這是假設您要處理的文件都與模式相符*.csv

我新增了 a -i,以便您可以選擇中止,如果這會導致檔案遺失(例如,因為同時存在 aA_x.csvB_x.csv)。

相關內容