【发布时间】:2012-01-31 15:24:36
【问题描述】:
我有一个日志文档,其中用于拆分列的字符串只是字符 \x01(不映射到 unicode 中的任何真实内容,因此它是安全的)。当我在 CentOS 机器上对短语“This is \x01”运行以下命令时,我得到:
cat ~/temp1 | sed s/\x01/meh/
this is meh
在 Mac 上,我得到:
cat ~/temp1 | sed s/\x01/meh/
this is
这与试图捕捉原件相同。
或者,在 Mac 上运行 Perl one liner:
cat ~/temp1 | perl -e 'while ( my $line = <>) {$line =~ s/\x01/meh/g; print $line;}'
得到我:
this is meh
所以,到目前为止,我的结论是 Mac 上的 sed 出于某种原因讨厌 unicode。任何人都知道为什么/如何解决它?
【问题讨论】:
-
当我在我的 Mac 上执行
echo "This is \x01"时,我只得到:This is \x01而不是this is,我错过了什么吗? -
是的,我的意思是 \x01 引用的 unicode 字符。只需在文本文件中输入 \x01 即可将每个字符视为文本。