仅使用一个逗号删除行

时间:2016-02-11 18:20:45

标签: bash awk sed

我已经找到了一种方法来做到这一点,我发现了类似的问题,但没有任何与此相符的内容。

我有一个cvs文件,其中包含以下文字:

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

所需的输出是:

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

我想知道是否有办法用单个过滤行,而没有其他字符...我认为这是我遇到困难的地方。

非常感谢任何帮助。 TIA。

3 个答案:

答案 0 :(得分:3)

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

或此特定输入文件中有1个或0个逗号:

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

答案 1 :(得分:1)

如果您想编辑该文件,您可以随时使用ed

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

答案 2 :(得分:0)

awk救援!

$ awk '!/^,$/' file

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