从AWK输出中删除线条

时间:2013-06-13 07:30:27

标签: sed awk xargs

我想从文件中删除少于2列的行:

awk '{ if (NF < 2) print}' test
one two

有没有办法将这些行存储到变量中,然后使用xargssed将其删除,例如

awk '{ if (NF < 2) VARIABLE}' test | xargs sed -i /VARIABLE/d

2 个答案:

答案 0 :(得分:2)

GNU sed

  

我想删除少于2列的行

小于2 =删除只有一列的行

sed -r '/^\s*\S+\s+\S+/!d' file

答案 1 :(得分:1)

如果您想根据条件将输入拆分为两个文件(名为“pass”和“fail”):

awk '{if (NF > 1 ) print > "pass"; else print > "fail"}' input

如果你只是想过滤/删除NF&lt; 2:

awk '(NF > 1){print}' input