如果第一行的字段等于'P'而第二行的字段等于'W',则使用awk

时间:2015-10-12 13:55:26

标签: awk

下面是我拥有的文件的片段:

Broad Street,Broad Street,P
Queen Street,Queen Street,P
Shoe Lane,Shoe Lane,P
Dev Way,Dev Way,P
Dev Way,Dev Way,W
Cameron Street,Cameron Street,P
Cameron Street,Cameron Street,W

我想逐行处理文件,如果第一行的第3行是'P',第二行的第3行是'W',我想保留两行并将它们连接在一起。但是如果第一行上的第三个字段等于'P而它下面的行也是P我想要删除该行并继续下一行。所以我的结果将是:

Dev Way,Dev Way,P,Dev Way,Dev Way,W
Cameron Street,Cameron Street,P,Cameron Street,Cameron Street,W

这可以在AWK中完成吗?

由于

1 个答案:

答案 0 :(得分:1)

awk 'BEGIN{FS=OFS=",";prevkey=""};{if ($NF=="W" && prevkey=="P") {print prev, $0}; prevkey=$NF; prev=$0}' datafile