2016-08-17 6 views
1

열 값이 여러 번 나오는 행 (원본 파일에서)을 찾아서 인쇄 할 수있는 하나의 라이너를 찾고 있습니다. 중복 된 열 값을 가진 행을 찾아서 인쇄하십시오.

14:33:48 00039410636 0.0712261199951 0.000329971313477 0.000263929367065 
14:33:48 00017668040 0.152565002441 0.000329971313477 0.000234842300415 
14:33:49 00089210243 0.0488851070404 0.000272989273071 0.000258922576904 
14:33:49 00062300425 0.0536940097809 0.000277042388916 0.000309228897095 
14:33:49 00023109101 0.0781791210175 0.000399112701416 0.000282049179077 
14:33:49 00081500442 0.0786049365997 0.000335216522217 0.000293970108032 
14:33:49 00026589717 0.0577909946442 0.000392913818359 0.000264883041382 
14:33:49 00087878627 0.0432670116425 0.000298023223877 0.000286102294922 
14:33:49 00014210886 0.101092100143 0.000373840332031 0.000265121459961 
14:33:49 00059863500 0.0529019832611 0.000293016433716 0.000245094299316 
14:33:51 00092798813 0.0535080432892 0.00034499168396 0.000228881835938 
14:33:51 00054882920 0.0543820858002 0.000327110290527 0.000303983688354 
14:33:51 00021580622 0.0117089748383 0.000319004058838 0.000248908996582 
15:14:59 00013458771 0.0104720592499 0.000365018844604 0.000272989273071 
14:53:20 00093117190 0.00757884979248 0.00036096572876 0.00032114982605 
14:33:52 00021129829 0.0112619400024 0.00036096572876 0.000262975692749 
14:33:52 00098544172 0.045077085495 0.000339984893799 0.000261783599854 
14:33:52 00064914953 0.00800800323486 0.000349044799805 0.000327110290527 
14:33:52 00058155891 0.00610685348511 0.000288963317871 0.000250101089478 
15:01:13 00013458771 0.0059118270874 0.000330924987793 0.000283002853394 
15:50:40 00093117190 0.00855803489685 0.000403881072998 0.000315189361572 
14:33:54 0006184364 0.00799012184143 0.000401973724365 0.000270843505859 
14:33:54 00042419563 0.00643301010132 0.000358104705811 0.000257968902588 
14:33:54 00034222668 0.00665307044983 0.000304937362671 0.000256061553955 
15:52:22 00093117190 0.00939893722534 0.000400066375732 0.000272989273071 
15:41:49 00013458771 0.00319004058838 0.000264167785645 0.000258922576904 

그래서 하나의 라이너 그냥 인쇄해야합니다 :

15:01:13 00013458771 0.0059118270874 0.000330924987793 0.000283002853394 
15:14:59 00013458771 0.0104720592499 0.000365018844604 0.000272989273071 
15:41:49 00013458771 0.00319004058838 0.000264167785645 0.000258922576904 
14:53:20 00093117190 0.00757884979248 0.00036096572876 0.00032114982605 
15:50:40 00093117190 0.00855803489685 0.000403881072998 0.000315189361572 
15:52:22 00093117190 0.00939893722534 0.000400066375732 0.000272989273071 

을 두 번째 열 값이 중복되기 때문에 같은 파일이 보인다. 나는이를 사용하여 모든 중복 값 (2 열)를 찾을 수 있어요 :

cat mplogs/cache_log.txt | awk '{print $2}' | sort | uniq -c | awk '$1>1{print}' 

난 그냥 원래 선 (한 라이너)를 인쇄 할 뭔가가 필요합니다. grep을 사용하여 여러 단계로 수행 할 수 있지만 너무 쉬울 것입니다.

할 수 있습니까?

+0

원본 파일이 너무 커서 게시 할 수 없습니다. 이 질문의 목적을 위해,'...'는 무시할 수 있지만, 중복 된 컬럼 값 라인은 연속적이지 않다는 것을 명심하십시오. – Wajahat

+1

샘플 입력으로 질문을 편집했습니다. – Wajahat

답변

1
$ awk 'cnt[$2]++{if (cnt[$2]==2) print prev[$2]; print} {prev[$2]=$0}' file 
15:14:59 00013458771 0.0104720592499 0.000365018844604 0.000272989273071 
15:01:13 00013458771 0.0059118270874 0.000330924987793 0.000283002853394 
14:53:20 00093117190 0.00757884979248 0.00036096572876 0.00032114982605 
15:50:40 00093117190 0.00855803489685 0.000403881072998 0.000315189361572 
15:52:22 00093117190 0.00939893722534 0.000400066375732 0.000272989273071 
15:41:49 00013458771 0.00319004058838 0.000264167785645 0.000258922576904 
관련 문제