我想用命令行解析一些文本文件。其中一部分涉及重新附加一些格式不正確的電子郵件中的破損字詞。舉例:在Mac OS X的.sh文件中使用sed
9,650 330,765.0 16.38% NYSE (000) 1,707,915 272,099.0 18.95% Commodit=
ies Close Change % Change Crude Oil (Feb) 19.62 0.32 1.66% Heating Oil (Ja=
我想搶'商品'。我正在使用這個workaround來完成工作。
我使用的是Mac OS X 10.7和GNU sed版本4.2.1。如果在命令行我輸入
sed ':a;N;$!ba;s/=\r\n//g' ./filename
sed正常工作。但是,如果我運行這個bash腳本:
#!/bin/bash
sed ':a;N;$!ba;s/=\r\n//g' filename
sed不起作用。然而,同樣的腳本Ubuntu的命令行下工作:
9,650 330,765.0 16.38% NYSE (000) 1,707,915 272,099.0 18.95% Commodities Close Change % Change Crude Oil (Feb) 19.62 0.32 1.66% Heating Oil (Jan)
我的Mac上,簡單的腳本
#!/bin/bash
sed 's/=//g' filename
成功地刪除所有的等號。我嘗試不同的字符組合來反斜槓,但沒有太大的成功。對Mac終端不喜歡的任何提示?
示例文件在每行的最後一個等號後面包含一個空格。這可能是你的命令失敗的原因嗎?另外,也許嘗試改變你的shebang到'#!/ bin/sh',它可以在OSX上運行。祝你好運。 – Steve
@steve感謝您的建議。不幸的是,將/ bin/bash改爲/ bin/sh不起作用。 :(我更新了示例文件以刪除空格,但它們不在實際文件中。 – RussH