2015-05-04 70 views
0

我請求幫助,一個非常簡單的腳本......桑達刪除匹配的行腳本

#!/usr/bin/sed -f 

sed '/11,yahoo/d' 
sed '/2506,stackover flow/d' 
sed '/2536,reddit/d' 

只需要它來除去三場比賽是佔我的文件18408,data.csv

% sed -f remove.sed < data.csv 
sed: 3: remove.sed: unterminated substitute pattern 

單獨做這些相同的線是完全沒有問題的,所以我在做什麼錯?

使用FreeBSD 10.1及其sed的實現,如果那麼重要。

回答

1

這是一個sed腳本,在每一行都不應該有「sed」。

要麼將​​其更改爲:

#!/usr/bin/sed -f 

/11,yahoo/d 
/2506,stackover flow/d 
/2536,reddit/d 

還是要

#!/bin/sh 

sed -e /11,yahoo/d \ 
-e /2506,stackover flow/d \ 
-e /2536,reddit/d 
+0

謝謝,rslemos!我應該自己發現了我的明顯錯誤。謝謝你的額外的眼睛。 –

+0

使用sed腳本,我試圖打印匹配的行: '#!/ usr/bin/sed -f /reddit/p' 但打印整個文件,在/結果前添加-n在一個錯誤。有任何想法嗎? –

+0

在shebang行上只能有一個選項集羣。試試'#!/ usr/bin/sed -nf'(換行符)'/ reddit/p'或者'grep reddit文件'。 – tripleee