2013-10-15 25 views
5

Moje pytanie to, że muszę uzyskać dane wyjściowe, jeśli dwie kolumny nie są równe poniżej, to mój kod.jak porównać dwie kolumny w jednym pliku w unixie

Dane wyjściowe są takie jak poniżej, dlatego moim pierwszym poleceniem jest, że nie należy drukować pierwszego, ponieważ oba są równe, a drugi powinien zostać wydrukowany, ponieważ oba nie są równe.

cat testingfull.txt|sed -n '/"Exp_CDL_BOOKINGS_F"/,/TABLEATTRIBUTE NAME/p'|grep EXPRESSION | awk -F"\"" '{print $8,"=",$12}' 

BOOK_DATE_KEY=BOOK_DATE_KEY 
Lkp_BOOKINGS_FACT_KEY=iif(not isnull(i_BOOKINGS_FACT_KEY) and isnull(iif(BOOK_DATE_KEY<>Lkp_BOOK_DATE_KEY, NULL)),null,i_BOOKINGS_FACT_KEY) 
BOOKINGS_FACT_KEY=Lkp_BOOKINGS_FACT_KEY 

Odpowiedz

7

Porównaj kolumny w poleceniu awk:

awk -F'"' '$8!=$12 {print $8,"=",$12}' 
+0

dzięki jego pracy –

+0

Jeśli ta odpowiedź ci pomogła rozwiązać swój problem, proszę rozważyć oznaczenie go jako "zaakceptowany", aby użytkownicy, którzy stoją przed podobnym problemem w przyszłości, będą mogli go łatwo zobaczyć. – anubhava

+0

Nie powinno to być 'awk -F '"' $ 8 == $ 12 {wydrukuj 8 $, "=", 12 $} {wydrukuj 8 USD, "! =", 12 $} '? – Ooker

2

To powinno działać dla Ciebie (szlak tym do bieżącej linii):

... | awk -F'=' '$1!=$2{print}' 
Powiązane problemy