2016-04-15 60 views
1

所以我有一堆文件名,如Zubko_141_i00_sed.datZubko_135_i00_sed.dat。我的目標是擺脫只有一個零,並完全替換文件名,所以我最終得到新的文件名,如:Zubko_141_i0_sed.dat。有沒有一種快速的方法來與sed或另一個正則表達式命令做到這一點?我需要刪除文件名中只有一個重複字符 - UNIX

回答

3

這就是你想要做的一切嗎?

$ var="Zubko_141_i00_sed.dat" 
$ echo "${var/00/0}" 
Zubko_141_i0_sed.dat 

隨着SED它會是:

$ echo "$var" | sed 's/00/0/' 
Zubko_141_i0_sed.dat 

但很難相信你不能明白這一點,所以我猜你真正需要別的東西 - 如果是編輯你的問題澄清。

鑑於你的更新問題,下面發表評論,也許你想:

for file in *; do mv "$file" "${file/00/0}"; done 
+0

那麼我需要完全替換大約330個文件的文件名,這些文件的命名與此類似,因此將每個文件設置爲等於變量將被證明是乏味的。 – Dyell

+0

好吧,我編輯了我的問題!我希望它更清晰...... – Dyell

+0

我更新了我的答案。 –

1

file.txt的:

Zubko_141_i00_sed.dat 
Zubko_135_i00_sed.dat 

試試這個:

sed -r 's/_i00_/_i0_/' file.txt 

輸出:

Zubko_141_i0_sed.dat 
Zubko_135_i0_sed.dat 
相關問題