在Mac OS 10.10.3下,我通过输入以下命令安装了gnu-sed:
brew install gnu-sed --default-names
Run Code Online (Sandbox Code Playgroud)
当我再次输入时,我收到消息:
已经安装了gnu-sed-4.2.2
但是,即使重新启动系统并重新启动终端,我仍然无法使用sed的GNU版本.例如:
echo a | sed ’s_A_X_i’
Run Code Online (Sandbox Code Playgroud)
返回:替换命令'i'中的坏标志
我该怎么做才能让GNU版本正常工作?以下是$ PATH变量中的路径.
/Users/WN/-myUnix
/opt/local/bin
/opt/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/calibre.app/Contents/MacOS
/opt/ImageMagick/bin
/usr/texbin
Run Code Online (Sandbox Code Playgroud)
如果我的问题看起来很明显,我很抱歉,但我自己学习shell脚本,并且还不太了解UNIX程序的安装方式.任何帮助使用GNU兼容命令(在这种情况下sed,但很快我也需要其他人)在我的Mac上不会造成损害或不必要的混乱将非常感激.
我试过了:
echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\t/g'
Run Code Online (Sandbox Code Playgroud)
结果如下:
eggtsalad
Run Code Online (Sandbox Code Playgroud)
和...
echo -e "egg\t \t\t salad" | sed -E 's/[[:blank:]]+/\\t/g'
Run Code Online (Sandbox Code Playgroud)
结果如下:
egg\tsalad
Run Code Online (Sandbox Code Playgroud)
我想要的是什么:
egg salad
Run Code Online (Sandbox Code Playgroud) 我有一些TSV文件,我需要转换为CSV文件.BASH中是否有任何解决方案,例如使用awk,转换这些?我可以sed像这样使用,但我担心它会犯一些错误:
sed 's/\t/,/g' file.tsv > file.csv
Run Code Online (Sandbox Code Playgroud)
如何将TSV转换为CSV?