2011-01-18 2 views
0

모두 안녕하세요! 어떻게 파일 마지막 중복의 간단한 방법 찾기 행 번호에 나는 마지막 중복 예꼬리 파일 bash를 사용하여 파일의 마지막 중복 행까지

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

내가 미리 HHH (STR1, STR2, STR3) .Thanks까지 만 굵은 필요까지 이야기를 취할 필요합니다! 이것은 출력

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

:이 입력을 감안할 때

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

:

+0

문제점을 이해하는 데 문제가 있습니다. – ghostdog74

+0

"str1"은 "str1"또는 "hhh"의 사본입니다 (3) "hhhh"(4)의 사본입니까? "str1/str2/str3"출력 또는 줄을 이전에 원하십니까? –

+0

) 마지막까지 hhh까지 줄이 필요합니다. – alper

답변

0

이 시도 줘

g 
h 
i 
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 

여전히 최대 빈도로 발생하는 복제본 만 제공됩니다. 그게 무슨 뜻이든, "마지막 중복"을 얻지 못합니다.

+0

문자열이 미리 무엇인지 알고 있고 복제되었는지 여부를 고려하지 않으면 작동합니다. –

+0

내가 알기로, 손보다 먼저 알 수 없다는 것을 몰랐다. – ghostdog74

+0

공정하기 위해서, 우리는 요구 사항에 대해 거의 안다. 파이프 라인은 "bbb \ na \ na \ nbbb \ nc \ nd \ n"에 대해 올바른 결과를 생성하지 않습니다. –

관련 문제