awk '!a[$0]++' a.txt b.txt c.txt
解释:
1、当条件 !a[$0]++ 为真时,awk 的默认动作是 print $0 ,即打印出当前行;
2、当一行首次出现时,a[$0] 为假,!a[$0]++ 为真。以后,当相同的行再次出现时,a[$0] 为真,!a[$0]++ 为假,所以不再打印该重复的行。所以就实现了去除重复行的功能。
类似上面的运用还有很多,比如提取一个文件的奇数行,可用如下方法:
awk 'NR%2' a.txt
sed实现提取奇数行:
sed -n 'p;n'