我有兩個csv文件比較兩個csv文件,並用awk附加新列
file1。 CSV例 - 第15欄 - 值 - 0812710304015這是塔10 file2中
M|xxxxxxx|xxxxxx|xxxxxx|xxxxxxxxx|H-SYD-AUAUD-003658-00000013-160606221243|123466789123456|1806||8800|MC-TCSSGK-0812710304015 0000001#M|182137|||0812710304015|04080010194MORTIER/VINCENT MR Fee Transaction 0812710304015 QF TCSSGK 15022602300045 0000000088000000000000000000000000000009010200MC50TCSSGKMORTIER/VINCENT MR Fee TransaRIMGR +00000000800 xxx N150301B000000000000000000000000000000000000000000000000000000000000000000000000
M|xxxxxx|xxxxx|xxxx|xxxxxx|H-SYD-AUAUD-003658-00000025-160606221243|xxxxxxxxx|1811||8800|MC-MKNUYE-0812710304016 0000002#M|104749|||0812710304016|04080010194WILLIAMS/JAY MR Fee Transaction 0812710304016 QF MKNUYE 15022602300045 0000000088000000000000000000000000000009010200MC50MKNUYEWILLIAMS/JAY MR Fee TransactiRIMGR +00000000800 QFAUAUDP1 N150301B000000000000000000000000000000000000000000000000000000000000000000000000
M|xxxxxx|xxxxx|xxxx|xxxxxx|H-SYD-AUAUD-003658-00000025-160606221243|xxxxxxxxx|1811||8800|MC-MKNUYE-0812710304016 0000002#M|104749|||0812710304017|04080010194WILLIAMS/JAY MR Fee Transaction 0812710304016 QF MKNUYE 15022602300045 0000000088000000000000000000000000000009010200MC50MKNUYEWILLIAMS/JAY MR Fee TransactiRIMGR +00000000800 QFAUAUDP1 N150301B000000000000000000000000000000000000000000000000000000000000000000000000
file2.csv例 - 第10欄 - 0812710304015
APPROVED||BATCH|BSP HOT|SYD||||QFAUAUDP1|0812710304015|MORTIER/VINCENT MR Fee Transa|TCSSGK|02300045|xxxxxxxxx|182137|0618|0;Successful;M;xxxxxxxxx|104749|1118|0;H-SYD-xxxx-003658-0000|MC|||
APPROVED||BATCH|BSP HOT|SYD||||QFAUAUDP1|0812710304016|WILLIAMS/JAY MR Fee Transacti|MKNUYE|02300045|xxxxxxxxx|104749|1118|0;Sucessful;M;xxxxxxxxx|104749|1118|0;H-SYD-xxxx-003658-0000|MC|||
輸出預期
如果找到記錄
file1 all | file2 1 st column
如果沒有找到記錄
file1 all columns | record not found
批准是在file2.csv文件中的第一列
到目前爲止我的代碼是
/usr/xpg4/bin/awk
BEGIN {FS = OFS= "|"}
NR == FNR {
A[$2] = $0;
print "value of a[$10]="A[$2];
b[$1] = $1;
print "value of b[$1]="b[$1];
next
}
{
print "I am still in first loop";
print $15;
if ($15 in A){ ---------> here i am not able to verify value of A . value is null
print $15;
}
else {
print "Iam here ";
print "vaslue of a[$1]=" A[$1]; -- > the value is A is null
print "value of $10 = " $10;
print $0;
}
}
file2.csv file1.csv
謝謝fedorqui。它只在未找到記錄時才起作用,但當兩個文件中都有記錄時,它不會使用file2第一列(即Approved或Declined)中的值更新最後一列。你能幫我怎麼做到這一點 –
@AbrarAhamed定義「其不更新」。你的意思是更新原始文件?對於您的給定輸入,它會生成所需的輸出。 – fedorqui
我的意思是輸出只對file2中不存在的記錄正確。對於存在的記錄,最後一列沒有得到與file2第一列更新 –