我想从文件中删除少于2列的行:
awk '{ if (NF < 2) print}' test
one two
有没有办法将这些行存储到变量中,然后使用xargs
和sed
将其删除,例如
awk '{ if (NF < 2) VARIABLE}' test | xargs sed -i /VARIABLE/d
答案 0 :(得分:2)
我想删除少于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