修复awk命令中数据和本地之间的不匹配

Dom*_*red 4 unix linux bash awk locale

我收到以下错误:

awk: cmd. line:1: (FILENAME=- FNR=798) warning: Invalid multibyte data detected. There may be a mismatch between your data and your locale.

我正在运行的命令如下:

cat file.txt | awk 'length($0)<10000' > output-file.txt

奇怪的是,如果我管道其他命令awk '{ sub("\r$", ""); print }',它可以正常工作没有错误.

任何人都明白为什么我会得到这个错误?或者,我应该忽略它吗?

hee*_*ayl 8

使区域设置C只使用单字节编码的ASCII字符集,传递LC_ALL=Cawk环境:

LC_ALL=C awk 'length($0)<10000' file.txt >output-file.txt
Run Code Online (Sandbox Code Playgroud)

此外,您不需要使用catas awkfilename作为参数.