【发布时间】:2021-09-24 17:00:35
【问题描述】:
我有 2 个文件:
f1.csv:
f2.csv:
我想要这个输出:
2100-12-31*1234A*Thomas*Frederuc*1931-02-20*6791237*6791238*test1*1*0*0*VIN*Jame 12*13*a1*zz3*D*13*1234*Tex*F 2100-12-31*1235A*Jack*Borbin*1931-02-21*7791238*7791239*test2*1*0*0*LUG*威廉侯*14*a2*zz4*A*13*1235*Barc*F 2100-12-31*1236A*Pierce*Matheus*1931-02-22*8791239*8791240*test3*1*1*1*AZA*Magnum st*15*a3*zz5*A*13*1236*Euo*F我有以下代码:
awk -F"*" 'FNR==NR{ A[$1]=$2;next} ($12 in A){$12=A[$12];print}' OFS='*' f1.csv f2.csv但是输出是:
*詹姆斯 12*13*a1*zz3*D*13*1234*Tex*F931-02-20*6791237*6791238*test1*1*0*0*VIN *威廉姆斯侯*14*a2*zz4*A*13*1235*Barc*F791238*7791239*test2*1*0*0*LUG *万能 st*15*a3*zz5*A*13*1236*Euo*F-02-22*8791239*8791240*test3*1*1*1*VIN如何获得我想要的输出?
【问题讨论】:
-
您的第一个文件是否具有 Windows 样式的 CRLF 行尾,并且您在使用 LF 行尾的系统上运行它?
-
我用的是windows 10和wsl2,用dos2unix解决了问题
标签: awk