我有一个日志文档,其中要拆分列的字符串只是字符\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一行代码作为:
cat ~/temp1 | perl -e 'while ( my $line = <>) {$line =~ s/x01/meh/g; print $line;}'
得到我:
this is meh
到目前为止,我的结论是Mac上的sed出于某种原因讨厌unicode。有人知道为什么/如何修理它吗?
使用MacPorts包gsed中的GNU sed。
编辑:GNU sed文档在这里。