2020-12-05 sed替换行为,与LANG=C
2020-12-05 本文已影响0人
linuxScripter
z@z-O-E-M:~/zworkT400/z-knowledge/zbook$ echo 我 | LANG=C xxd
00000000: e688 910a ....
z@z-O-E-M:~/zworkT400/z-knowledge/zbook$ echo 我 | xxd
00000000: e688 910a
说明,这个LANG=C加不加,对原始内容,没有改变,但是,它改变的是后续命令对字符的理解。
例如,sed替换时,点号代表一个字符,但,它默认处理utf8编码环境时,一个汉字就是一个字符,是3B的字符。
而,如果用了LANG=C,表示,按ASCII来看,一个字符就是1B,因此,替换的结果就是3个a。
z@z-O-E-M:~/zworkT400/z-knowledge/zbook$ echo 我 | sed 's/./a/g'
a
z@z-O-E-M:~/zworkT400/z-knowledge/zbook$ echo 我 | LANG=C sed 's/./a/g'
aaa