Bash Sed命令,用于将亚洲字符打印到文件中
这是一个问题的后续问题。基本上,当我这样做时:Bash Sed命令,用于将亚洲字符打印到文件中,bash,shell,scripting,sed,terminal,Bash,Shell,Scripting,Sed,Terminal,这是一个问题的后续问题。基本上,当我这样做时: sed '/Q/{ s/Q//g r /Users/ericbrotto/Desktop/question.txt }' Commision.txt sed '/Q/{ s/Q//g r /Users/ericbrotto/Desktop/question.txt }' Commision.txt > newFile 一切都很好,但新的输出只是打印到控制台 当我这样做时: sed '/Q/{ s/Q//g r /Users/ericbro
sed '/Q/{
s/Q//g
r /Users/ericbrotto/Desktop/question.txt
}' Commision.txt
sed '/Q/{
s/Q//g
r /Users/ericbrotto/Desktop/question.txt
}' Commision.txt > newFile
一切都很好,但新的输出只是打印到控制台
当我这样做时:
sed '/Q/{
s/Q//g
r /Users/ericbrotto/Desktop/question.txt
}' Commision.txt
sed '/Q/{
s/Q//g
r /Users/ericbrotto/Desktop/question.txt
}' Commision.txt > newFile
输出打印到文件中,但我的新字符串(在以前的输出中被正确替换的字符串)现在读取为一组亚洲(我相信是普通话)字符
有什么想法吗?听起来你的编码不匹配 我敢打赌,您的shell、
commission.txt
和question.txt
的编码并不相同。因此,sed正在替换它不能识别为宽字符的部分宽字符。所有后续的字符编码都会减少半个字符,结果是中文
有关类似问题的讨论,请参阅。请发布在本地shell中执行的cmd
locale
的输出,如果您的sed脚本包装在shell脚本中,请将其放在调用sed之前和之后,或者至少查看这些输出,以确定是否可以识别任何差异。祝你好运。另外,我认为有必要进一步了解文件question.txt中的内容——它只是ASCII码,还是其他什么?