尾部文件使用bash直到文件中的最后一个重复行

时间:2011-01-18 07:59:33

标签: bash

嘿大家好!如何以简单方式查找文件中最后一次重复的行号 我需要把故事带到最后一个重复的例子

hhhh
 str1
 str2
hhhh
 str1
hhh
**str1
str2
str3**

我只需要大胆直到hhh(str1,str2,str3)。提前谢谢!

2 个答案:

答案 0 :(得分:0)

尝试一下:

awk '{if (a[$0]) accum = nl = ""; else {a[$0]=1;accum = accum nl $0; nl = "\n"}} END { print accum}' inputfile

鉴于此输入:

aaa
b
c
aaa
d
e
f
aaa
b
aaa
g
h
i

这是输出:

g
h
i

答案 1 :(得分:0)

从丹尼斯那里取样,

$ gawk -vRS="aaa" 'END{print}'  file

g
h
i

这是另一种方式,如果你事先不知道,虽然不像一个awk脚本那样优雅。

var=$(sort file| uniq -c|sort -n | tail -1| awk '{print $2}')
gawk -vRS="$var" 'END{print}'  file

但是,这只会获得频率最高的副本。无论这意味着什么,它都没有得到“最后的重复”。