在ubuntu終端機中重命名大量文件

在ubuntu終端機中重命名大量文件

我有一些文件寫為:test_026542_time0663550.5.jpeg,我想重命名為,test_0663550.jpeg以便按訂單號輕鬆分類,因為當前名稱有一些錯誤。

答案1

使用該rename功能。它的基本(原型形式)是$ rename s/"SEARCH"/"REPLACE"/g *。這會將檔案“SEARCH”替換為“REPLACE”。這/g表示全域,因此如果您有“SEARCH SEARCH.jpg”,它將被重新命名為“REPLACE REPLACE.jpg”。是*擴展類型,如.mp3.pdf。所以,你的例子是:

$ rename s/'test_026542_time0663550.5.jpeg'/'test_0663550_.jpeg'/g *

應該有幫助。

答案2

我的電池快沒電了,所以我就長話短說

查找+awk oneliner

 find . -type f -printf "%f\n" |  awk -F "_" 
    '{ORIG=$0;gsub(/\_[[:digit:]].*\_time/,"_");gsub(/\.[[:digit:]].*\.jpeg/,".jpeg"); NEW=$0;cmd="mv "ORIG" 
    "NEW;system(cmd)}' 

示範

testdir2:$ ls
test_13442_time1446925878.1.jpeg  test_27796_time1446925887.4.jpeg
test_25495_time1446925884.3.jpeg  test_29681_time1446925881.2.jpeg


testdir2:find . -type f -printf "%f\n" |  awk -F "_" 
'{ORIG=$0;gsub(/\_[[:digit:]].*\_time/,"_");gsub(/\.[[:digit:]].*\.jpeg/,".jpeg"); NEW=$0;cmd="mv "ORIG" 
"NEW;system(cmd)}' 

testdir2:$ ls
test_1446925878.jpeg  test_1446925881.jpeg  test_1446925884.jpeg  test_1446925887.jpeg

相關內容