【问题标题】:How Can I get Sed to Split on a Unicode Character on a Mac?如何让 Sed 在 Mac 上拆分 Unicode 字符?
【发布时间】: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 即可将每个字符视为文本。

标签: macos unicode sed


【解决方案1】:

使用来自MacPorts 包gsed 的GNU sed。

编辑: GNU sed 的文档是 here。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 2013-04-17
    • 2021-10-16
    • 2016-01-09
    • 2016-05-15
    • 2022-01-14
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多