2013-08-25 120 views
0

我創建這個愚蠢的腳本:如何在腳本中使用括號?

#!/bin/bash 
#archivo=0 
for i in *.esp.srt 
do 
    iconv -f=ISO8859-1 -t=UTF-8 "$i" > "$i.srt" 

done 

但我的文件,以便正確地執行腳本之前重命名。如果文件被調用,例如:

「無所謂」(西班牙語(西班牙))SRT

它不工作。

我已經試圖改變這一行我的腳本: 因爲我在*(西班牙語(西班牙))SRT

但很明顯,我做錯了什麼,因爲它不工作。

編輯:我的腳本在文件爲* .esp.srt時有效。 但是,如果該文件是*它不工作(西班牙語(西班牙))SRT

EDIT2:現在它的工作原理:

#!/bin/bash 
#archivo=0 
for i in *" (Español (España)).srt" 
do 
    iconv -f=ISO8859-1 -t=UTF-8 "$i" > "${i%% "(Español (España)).srt"}.esp.srt" 
    rm *" (Español (España)).srt" 
done 
+0

什麼是錯誤信息? – janos

回答

1

嘗試是這樣的:

mkdir -p converted && \ 
for i in *.esp.srt *Esp*.srt 
do 
    iconv -f=ISO8859-1 -t=UTF-8 "$i" > "converted/$i" 
done 

此外,如何你真的想你的文件名轉換?你也應該知道,用你的代碼你的輸出變成something.srt.srt。如果您想更換您的擴展,像.utf8.srt,做這種方式(假設你的文件結束.esp.srt):

for i in *.esp.srt 
do 
    iconv -f=ISO8859-1 -t=UTF-8 "$i" > "${i%%.esp.srt}.utf8.srt" 
done 

同樣可以添加另一個循環的文件,如"whatever" .(Español (España)).srt

for i in *'.(Español (España)).srt' 
do 
    iconv -f=ISO8859-1 -t=UTF-8 "$i" > "${i%%'.(Español (España)).srt'}.utf8.srt" 
done 
+0

非常感謝!關於引號的提示是我需要正確運行腳本的提示! –

1

編輯:當文件* .esp.srt我的腳本工作。但是,如果文件是*(Español(España)),則不起作用。srt

呃是的。這是因爲這條線

因爲我在* .esp.srt

只查找的東西,在.esp.srt一端"whatever" (Español (España)).srt沒有。如果你想使用

因爲我在*(西班牙語(西班牙))。SRT

然後,你需要考慮的支架,因爲你暗示。周圍放""

+0

謝謝!這就是我需要的。 –

相關問題