Rename

Gunzip多個文件並重命名它們

  • October 30, 2015

我想知道是否可以gunzip使用一個命令/腳本來處理多個文件並重命名它們。

我有一堆格式的文件:

test.20120708191601.DAT.3599502593.gz
test.20120708201601.DAT.99932140.gz
test.20120708204600.DAT.1184686967.gz
test.20120708212100.DAT.824089664.gz
test.20120708215100.DAT.1286044098.gz
test.20120708222100.DAT.1414234861.gz

我需要gunzip他們並刪除 , 之後的所有內容.DAT,格式為:

test.20120708191601.DAT
test.20120708201601.DAT
test.20120708204600.DAT
test.20120708212100.DAT
test.20120708215100.DAT
test.20120708222100.DAT

嘗試這個:

for file in *.gz; do
 gunzip -c "$file" > "${file/.DAT*/.DAT}"
done

該方法使用gunzip’ 選項將未壓縮的流輸出到標準輸出 ( -c),因此我們可以將其重定向到另一個文件,而無需第二次重命名呼叫。重命名是在文件名變數本身上完成的,使用bash替換(匹配任何通配模式.DAT*並將其替換為.DAT)。循環本身只是遍歷目前目錄中名稱以 . 結尾的文件.gz

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