2012-09-07 29 views
-2

有一個文件File_1.txt我怎麼一個文件的列比較UNIX

AA:BB:CC 
[email protected]@gmail.com:[email protected] -------------------------- Row1 
[email protected],[email protected]:[email protected]:[email protected]@com ---------------Row2 
[email protected],[email protected]:[email protected],[email protected]:[email protected] 

這裏AABBCC三列和文件是:界定。

在第1行若AA數據與BBAA匹配帶有CCBBCC數據然後打印Row 1 matched,如果不是然後打印Row 1 no matched

+2

歡迎堆棧溢出!我們鼓勵你[研究你的問題](http://stackoverflow.com/questions/how-to-ask)。如果你已經[嘗試了某些東西](http://whathaveyoutried.com/),請將其添加到問題中 - 如果沒有,請先研究並嘗試您的問題,然後再回來。 – 2012-09-07 09:16:49

回答

2
$ gawk -F: 'FNR > 1 {if ($1 == $2 || $1 == $3 || $2 == $3) 
         print FNR, "match"; 
        else 
         print FNR, "no match";}' < File_1.txt 
+1

您還需要添加計數器,以打印哪些行匹配,哪些不匹配 – moatPylon

+0

謝謝。我可以根據我的要求對其進行修改。謝謝.. :-) – Pooja

+0

編輯使用FNR – 2012-09-07 09:27:52

0
awk -F: '{if(!($1==$2||$2==$3||$3==$1))printf("%s","not ");print"matched",$0}' file 

如下測試:

> cat temp 
AAAA:0:12 
BBBBB:2:2 
CCCCC:1:1 
DDDD:0:0 
EEEEE:1:2 
> awk -F: '{if(!($1==$2||$2==$3||$3==$1))printf("%s","not ");print"matched",$0}' temp 
not matched AAAA:0:12 
matched BBBBB:2:2 
matched CCCCC:1:1 
matched DDDD:0:0 
not matched EEEEE:1:2 
+0

亞..它正在工作。但我的下一個問題是:\t \t COL1:COL2:COL3 \t \t ROW1 \t A:B:C \t ROW2 \t X,Y:Y: \t ROW3 \t A,C:B,A:C這裏第2行 - col 1有記錄「x,y」現在它打印「不匹配」,但我的問題是,「y」出現在第2行 - col1以及第2行 - col2。現在在這種情況下,我想單獨打印該記錄。 – Pooja

+0

謝謝Sarathi。它的工作! – Pooja