我需要将.txt文件编码更改为utf-8。 脚本:
#!/bin/bash
for NOME_ARQ in *.txt do
##1 - verify file encoding and store in CODIFICACAO
CODIFICACAO=$(file --mime-encoding "$NOME_ARQ" | cut -d" " -f2)
##2 - convert to utf-8
iconv -f "$CODIFICACAO" -t utf-8 "$NOME_ARQ" -o temp01.txt
done
为## 1尝试了几种方法,但总是出现以下错误:
sc-sini2csv: line 5: sintax error near `token' unexpected `CODIFICACAO=$(file --mime-encoding "$NOME_ARQ" | cut -d" " -f2)'
sc-sini2csv: line 5: `CODIFICACAO=$(file --mime-encoding "$NOME_ARQ" | cut -d" " -f2)'
我们从错误中看到,在分配变量$ CODIFICACAO
时会出现问题据我所看,有两种方法可以将STDOUT分配给变量:
1-使用反引号:
CODIFICACAO=`file --mime-encoding "$NOME_ARQ" | cut -d" " -f2`
或
2-使用$():
CODIFICACAO=$(file --mime-encoding "$NOME_ARQ" | cut -d" " -f2)
他们两人都会犯同样的错误。
正如我写的那样,看起来很傻,但我对这个错误感到困惑.....任何帮助都会非常感激!!!
PS:直接从终端(在bash脚本之外)使用$()或反引号将起作用....但我需要它进入shell脚本。
及时:我正在使用带有bash shell的ubuntu
提前致谢!!! 西尔维奥
答案 0 :(得分:4)
你错过了一个分号:
for NOME_ARQ in *.txt; do
答案 1 :(得分:1)
do
应该换行:
for NOME_ARQ in *.txt
do