Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Sed命令,用于将亚洲字符打印到文件中_Bash_Shell_Scripting_Sed_Terminal - Fatal编程技术网

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码,还是其他什么?