2011-01-18 4 views
0

皆さん!どのファイル の最後の重複のシンプル方法検索行数に私は最後の重複例テールファイルbashを使用してファイル内の最後の重複行まで

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

私は事前にHHH(STR1、STR2、STR3).Thanksまでだけ大胆必要まで物語を取る必要があるために!

+0

問題を理解できません。 – ghostdog74

+0

"str1"は "str1"または "hhh"の複製です(3) "hhhh"(4)の複製ですか? "str1/str2/str3"出力または前の行が必要ですか? –

+0

)私は最後までhhh – alper

答えて

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 
0

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

g 
h 
i 

これは別の方法です。あなたが手を知らない場合は、1つのawkスクリプトほどエレガントではありません。

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

これでも、最も頻度の高い複製が得られます。それが意味するものは、「最後の重複」を得ることはありません。

+0

文字列が事前にわかっていて、重複しているかどうかは考慮されていません。 –

+0

私は、それが手前では分からないことを知りませんでした – ghostdog74

+0

公正であるために、私たちは要件についてほとんど知っていません。パイプラインは "bb \ na \ na \ nbbb \ nc \ nd \ n"に対して正しい結果を生成しません。ありがとう。 –

関連する問題