Shell

重命名字母數字文件

  • June 22, 2018

我在目錄中有以下文件:

GE.AARS_vs_Control16.txt
GE.DHX30_vs_Control18.txt
GE.DNAJC2_vs_Control18.txt

我想刪除*_Control<numeric>並替換它,*_Others以便將文件重命名為

GE.AARS_vs_Others.txt
GE.DHX30_vs_Others.txt
GE.DNAJC2_vs_Others.txt
for file in /dir/*.txt; do
   mv "$file" "${file%_*}_Others.txt"
done

${file%_*}是一種 shell 參數擴展的形式,它將刪除從最後一個開始的所有內容_

使用 Perlrename工具,假設您與要重命名的文件位於同一目錄中:

rename 's/_Control1[68]/_Others/' GE.*_Control1[68].txt

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