2013-08-25 4 views
0

Я создаю этот глупый сценарий:Как использовать скобки в скрипте?

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

done 

Но я должен, прежде чем переименовать файлы, чтобы выполнить скрипт правильно. Если файл называется, например:.

"все" (Español (España)) SRT

Это не работает.

Я уже попытался изменить эту строку в моем скрипте: для I в * (Español (España)) SRT

Но очевидно, что я делаю что-то неправильно, потому что это не работает..

Редактировать: мой скрипт работает, когда файл * .esp.srt. Но это не работает, если файл * (Español (España)) 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

Edit: мой скрипт работает, когда файл * .esp.srt. Но это не работает, если файл * (Español (España)). Srt

Uhh да. Это потому, что эта линия

для г в * .esp.srt

только смотрит на вещи, которые заканчиваются на .esp.srt, которые "whatever" (Español (España)).srt не делает. Если вы хотите использовать

для г в * (Español (España)). SRT

Тогда вам нужно объяснить скобки, как вы подразумеваете. Поместите "" вокруг него.

+0

Спасибо! Это то, что мне нужно. –

Смежные вопросы