2016-02-11 49 views
1

我有搜索一種方法來做到這一點,我發現了類似的問題,但沒有什麼符合這一點。刪除線只有一個逗號

我有以下文本CVS文件:

nfoabc,infidel 
infoghi,infojkl 
, 
, 
, 
inferno,infopqr 
infoabc,infodef 
, 
, 
, 

所需的輸出是:

infoabc,infidel 
infoghi,infojkl 
inferno,infopqr 
infoabc,infodef 

我不知道是否有過濾用單線條的方式,並沒有其他人物......我認爲這是我遇到困難的地方。

任何援助將不勝感激。 TIA。

+1

的[如何跳過匹配串線]可能的複製(http://stackoverflow.com/問題/ 6684857/how-to-skip-lines-matching-a-string) –

+0

謝謝大家。我做錯了沒有寫回到一個文件,理想情況下,我會覆蓋現有的文件,但我可以處理這個問題。謝謝! – cducasse

+0

@cducasse:'cmd文件> tmp && mv tmp文件'。用你想執行的任何命令替換'cmd'。 –

回答

3
$ grep -v '^,$' file 
infoabc,infidel 
infoghi,infojkl 
inferno,infopqr 
infoabc,infodef 

或這個特定的輸入文件,其中有1個或0逗號:

$ grep '[^,]' file 
infoabc,infidel 
infoghi,infojkl 
inferno,infopqr 
infoabc,infodef 
0

awk來救援!

$ awk '!/^,$/' file 

nfoabc,infidel 
infoghi,infojkl 
inferno,infopqr 
infoabc,infodef 
1

如果你想編輯文件,你可以隨時使用ed

ed -s file <<< $'g/^,$/d\nw' 
+0

酷!你可以用MS-DOS'edlin'嗎? ;-) –

+0

@MarkSetchell我不知道'edlin'是什麼,對不起':('。 –

+1

這是我所知道的唯一一個比'ed'更簡潔的編輯器! –