如果一行包含3个以上的空格,请删除该行

时间:2011-07-18 23:50:36

标签: if-statement awk line

我有一个

形式的文本文件
sadsadsad sadsadsadd sadasdsadad

其中的一些行在第二列的中间包含一个附加空格,例如

sadsadsad sads adsadd sadasdsadad

如果特定行上有超过2个空格,我可以使用awk查看文件并删除该行吗?

2 个答案:

答案 0 :(得分:3)

您不需要awk,简单sed即可:

sed -e '/ .* .* /d'

如果你特别想要awk,你可以这样做:

!/ .* .* / {
    print;
}

您也可以自定义正则表达式,可以在/ [^ ]+ [^ ]+ /两种情况下使用。或者,正如jkerian在另一个答案中提出的那样,只需使用NF

答案 1 :(得分:1)

你可以创建一个正则表达式,用sed或awk进行正则表达式匹配...但是这可行

awk '{if ($4 == "") print}' input_file

另一种选择是使用NF变量

awk '{if (NF < 4) print}' input_file