Этот общий вопрос задавался много раз, и почти всегда существует явная проблема синтаксиса. Но это кажется правильным:Синтаксическая ошибка при простом цикле
cat mixed_encoded.txt |
while read i do
type=${"$(echo "$i" | file -bi -)"#*=}
if [[ $type == 'iso-8859-1' ]]; then
echo "$i" | iconv -f ISO-8859-1 -t UTF-8
else
echo "$i"
fi
done > utf8_encoded.txt
дает
bash: syntax error near unexpected token `done'
ли вставлен как многострочный или в режиме одной строки. С окончанием > utf8_encoded.txt
. С закрытыми внутренними кавычками или нет.
Что может быть неправильным?
Try и поставить 'while' сразу после трубы в предыдущей строке. – fejese
Неправильно. – jgritty
Не используйте 'cat' для перебора файлов – BroSlow