将shell脚本设置为utf8

Vic*_*c23 3 bash shell ascii utf-8

我想将以下命令行写入shell脚本:

cat text.tsv |
grep -Pvi '.\t.\t.*\bHotels|?????????|??????|?????|?????|???|????|????|????|??????|??|??|??|??|??|??|??\b' |
awk '{print $0,"\t","column1"} > Text2.tsv
Run Code Online (Sandbox Code Playgroud)

但是当我把它放到.sh文件中时,所有非ascii字符都会被忽略:

cat text.tsv |
grep -Pvi '.\t.\t.*\bHotels|?????????|??????|?????|?????|???|????|????|????|??????|??|??|??|??|??|??|??\b' |
awk '{print $0,"\t","True"} > Text2.tsv
Run Code Online (Sandbox Code Playgroud)

如何将.sh文件设置为UTF-8?我试过了:

iconv -c -f ASCII -t UTF-8 Test.sh > Test2.sh 
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

jer*_*emf 10

Bash会处理您的区域设置.

检查一下 locale

如果不是UTF-8,你会这样:

export LANG=C.UTF-8
Run Code Online (Sandbox Code Playgroud)