最近处理文件用了Linux sed 后来改用Mac sed,发现相同数据相同命令,Mac sed 得不到处理后的结果,一搜原来 Mac sed 不支持\t (\s也不支持), 因为Mac sed 本质上是来源于 1982年的 4.2 BSD系统(http://stackoverflow.com/questions/5398395/how-can-i-insert-a-tab-character-with-sed-on-os-x),而 Linux sed 是GNU sed.
解决办法:
1. 按住ctrl+v 然后按 Tab, 输入字面的TAB
中文版
使用Mac OSX上的sed的时候,如果想替换tab这个特殊字符,会出现很多奇奇怪怪的问题。当很很多其他也一样,有时候用Mac上的命令就是蛋疼蛋疼。 这个问题有很多问法,我们暂且把它转化为如何在Mac 的terminal下面输入sed可以识别的tab的字符。
通过上面的方法你可以得到sed 可以识别的tab字符。 试试下面的命令:
English version
How can I insert a tab character with sed on OS X?
Mac OSX’s sed can’t understand \t be Tab, therefore, we need to insert Tab for another way.
日本語版
MacOSX上でsedを利用して、tab文字の置換をやろうとして、つまづいたのでメモ。
とかしてみたけど、全然効かず。 いろいろやってみて効いた方法が
C-v → Ctr-v tab → 普通にTABキー これで実行したら出来た。
MacOS上だけなのかなー。
Reference
Stackoverflow-How can I insert a Tab with sed in OSX
2. 安装GUN sed (方法自行百度)
尊重他人劳动成果,转载请注明出处:Bluesky's blog » mac sed 不支持\t和\s