BASH - 删除特定行

时间:2016-05-11 17:07:17

标签: bash shell awk

我需要删除第4列中具有SUPMA值的所有行。

我的数据如下:

abc;def;ghi;SUPMA;klm
abc;def;ghi;SUPMA;klm
SUPMA;def;ghi;MA;klm
abc;def;ghi;SUPMA;klm
abc;def;ghi;SUP;klm

在这个例子中,我想保留第3行和第5行。

我如何在bash脚本中执行此操作?我可以使用AWK吗?

由于

2 个答案:

答案 0 :(得分:2)

awk -F";" '$4!="SUPMA"' yourfile.txt

这里awk用分号分割记录,然后测试SUPMA的第4个位置。默认情况下,如果该条件通过,它将打印该行。

答案 1 :(得分:1)

 awk -F\; '$4 !~/SUPMA/' file 
    SUPMA;def;ghi;MA;klm
    abc;def;ghi;SUP;klm