我正在處理我最初的bash腳本,並被困在需要來自論壇的幫助的地方。Diff 2長字符串並在第三個文件中寫入結果
如何在shell腳本中實現以下內容? (任何建議/指針理解!!!)
要求:
比較2個文件匹配數KEY包含長串和在第三文件堅持只長串這在其他屬性不同(說USER的值是不同的) 。也跳過一些屬性比較。
輸入FILE1-
AAUTOX=Y;ACCT=;ACTION=C;APRICE=99.975;AQTY=5541;USER=Sam,bpl;CONFIRM=Y;KEY=29976DYE4;DEPT=MYNA-CLCD -- same
AAUTOX=Y;ACCT=;ACTION=C;APRICE=05.975;AQTY=3451;USER=Todd,chr;CONFIRM=N;KEY=29976DYE5;DEPT=MYNA-CLCD -- diff (USER=Todd,chr) write in result file
輸入FILE2-
AAUTOX=Y;ACCT=;ACTION=C;APRICE=99.975;AQTY=5541;USER=Sam,bpl;CONFIRM=Y;KEY=29976DYE4;DEPT=MYNA-CLCD -- same
AAUTOX=Y;ACCT=;ACTION=C;APRICE=05.975;AQTY=3451;USER=Alan,ncr;CONFIRM=N;KEY=29976DYE5;DEPT=MYNA-CLCD -- diff (USER=Alan,ncr) write in result file
AAUTOX=Y;ACCT=;ACTION=C;APRICE=17.000;AQTY=6453;USER=Todd,chr;CONFIRM=N;KEY=29976DYE6;DEPT=MYNA-CLCD -- no match (KEY) found write in result file
輸出FILE3:
FILE1:AAUTOX=Y;ACCT=;ACTION=C;APRICE=05.975;AQTY=3451;USER=Todd,chr;CONFIRM=N;KEY=29976DYE5;DEPT=MYNA-CLCD
FILE2:AAUTOX=Y;ACCT=;ACTION=C;APRICE=05.975;AQTY=3451;USER=Alan,ncr;CONFIRM=N;KEY=29976DYE5;DEPT=MYNA-CLCD
FILE1:
FILE2: AAUTOX=Y;ACCT=;ACTION=C;APRICE=17.000;AQTY=6453;USER=Todd,chr;CONFIRM=N;KEY=29976DYE5;DEPT=MYNA-CLCD
等爲每個遞延線....
方法在我心中(這是第一次切後CUD提高):通過線(AWK或讀?) 每行
- 一)
- 讀FILE1讀取線FILE2匹配獨特的「鑰匙」(該命令在這裏使用? ?? awk可以根據鍵讀取文件嗎? (FILE2中的grep KEY,但是如何將行分割成字段進行比較?)
- b)現在將FILE1.LINE1的每個字段與FILE2.LINE進行比較,如果第三個結果文件中的不同寫入(awk將行分爲$ 1,$ 2這樣就可以比較 但不知道怎麼做,如果使用「讀」命令???)
預期的樣本輸出可以幫助我們更好地理解 –
添加樣本輸出。謝謝 – nads
結果文件行的順序是否重要(它們可以以不同於它們在輸入文件中出現的順序出現)?是指定哪一行輸入文件(即插入的'FILE#:'行前綴)是重要的?是否表示文件中沒有匹配(例如,在您的示例中只有'FILE1:'的行)重要? –