Linux下用uniq命令后丢失某些行
程序员文章站
2022-03-11 12:05:35
...
Linux下用uniq命令后丢失某些行
原因
对于系统不认识的字符,会被统统认为相同。
例如:
我爱你a
我爱你b
我爱你c
如果系统只认识中文,不认识英文,那么在系统眼里,它们都是
我爱你<unkown char>
此时如果要执行uniq命令之后,就会删除其中的两行,只留下
我爱你a
解决方法
更改系统字符集设置(环境变量LANG),让系统认识这些字符。
那么应该改成什么字符集呢?字符集有很多,例如en_US.utt8、zh_CN.gb2312、zh_CN.gbk、zh_CN.utf8等等。
如果改成其中一个,还是有系统不认识的怎么办?
可以将LANG设置为C,如下:
vim ~/.bashrc
添加:
LANG=C
此处C的含义表示character,意思是甭管你是什么字符集了,我一个一个字节地比较。
这样,系统就不会把不认识的字符当做一样的了。