Mac*_*nny 8 macos tabs sed special-characters
我已经在这里搜索了相当长的一段时间,虽然我发现了一些非常好的信息,但在我的问题上没有任何内容.Short-n-sweet,我在Mac OS 10.11上使用sed尝试用管道字符替换制表符.到目前为止我在此处找到的所有信息,语法可能适用于其他平台,但不适用于Mac OS 10.11.我知道sed适用于10.11,因为我可以整天替换普通的标准字符甚至像逗号一样标点符号.是的,我尝试过使用\t.我发现使用标准字符的sed字符串如下:
sed -i '' -e 's/,/|/g' /Users/username/Desktop/TABs2PIPE.txt
Run Code Online (Sandbox Code Playgroud)
当我用来\t代替,上面的字符串时,它只是替换t文件中的所有小写字母.
所以,任何其他Macheads谁已经让这个工作我真的很感激一些帮助,谢谢你提前.
zwo*_*wol 11
OSX sed是BSD衍生的;这个血统sed从未被接受\t为TAB字符IIRC的表示法。如果您的外壳是bash(这是OSX上的默认设置),请尝试以下操作:
sed -i '' -e $'s/\t/|/g' file_to_process.txt
Run Code Online (Sandbox Code Playgroud)
$'...'是bash扩展;它是带'...'引号的单词,但是C样式的反斜杠转义在其中解释。从bash手册页:
表格
$'string'中的单词经过特殊处理。该单词扩展为 string,并按ANSI C标准的规定替换了反斜杠转义的字符。
因此,sed将看到-e s/ /|/g前两个空格之间的距离是一个文字TAB字符,它应该对此进行正确处理。
如果您的外壳不是 bash,则可以自己输入一个制表符,方法是先按Control-V再按TAB。
| 归档时间: |
|
| 查看次数: |
4336 次 |
| 最近记录: |