使用awk比较文件中的后续行

时间:2017-02-23 16:06:14

标签: shell awk

我在文件

中有以下条目
UK99_08
UK99_08
UK99_08
UK99_08
UK99_08
UK99_17
UK99_17
UK99_17
UK99_17
UK99_17
UK99_19
UK99_19
UK99_17
UK99_17
UK99_17
UK99_20
UK99_17
UK99_17
UK99_17

我需要显示副本的第一个条目,其余与第一个条目相匹配的行应该为NULL,使用awk看起来应该是这样的

UK99_08



UK99_17



UK99_19

UK99_17


UK99_20
UK99_17

2 个答案:

答案 0 :(得分:4)

在awk中:

$ awk '{print ($0==p?"":$0); p=$0}' file

说明:

{
    print ( $0==p ? "" : $0 )  # if current record is the same as p print "", else $0
    p=$0                       # store current record to p 
                               # for comparing on next iteration
}

答案 1 :(得分:-2)

while read line
do
  if [ $line = $previousLine ]
  then
    echo;
  else 
    echo $line
    previousLine=$line
  fi
done < my_file