awk 不能同时打印一个数组和一个位置参数
awk can not print an array and a position parameter at the same time
awk 不能同时打印一个数组和一个位置参数
hehe.txt —> 23402269,55
haha.txt —> 23402269,108147883084318723015500000055,1,0
--
无法获得 [$1] 值
awk -F"," '{if(NR==FNR){a[] = }else{if( in a){print a[]" | "[=11=]}}}' hehe.txt haha.txt
或
awk -F"," '{if(NR==FNR){a[] = }else{if( in a){printf("%s | %s\n",a[],[=12=])}}}' hehe.txt haha.txt
结果
| 23402269,108147883084318723015500000055,1,0
--
使用 printf 和 %d,我可以得到正确的结果
awk -F"," '{if(NR==FNR){a[] = }else{if( in a){printf("%d | %s\n",a[],[=14=])}}}' hehe.txt haha.txt
结果
55 | 23402269,108147883084318723015500000055,1,0
--
问:不知道为什么,谢谢。
如前所述,检查是否有任何控制 M 字符,如果您需要删除它们,请使用以下命令,然后使用 运行 您的命令。(如果您有 dos2unix
实用程序 运行 它在你的 Input_file 上去掉控制 M 字符)
tr -d '\r' < Input_file > temp_file && mv temp_file Input_file
awk 不能同时打印一个数组和一个位置参数
hehe.txt —> 23402269,55
haha.txt —> 23402269,108147883084318723015500000055,1,0
--
无法获得 [$1] 值
awk -F"," '{if(NR==FNR){a[] = }else{if( in a){print a[]" | "[=11=]}}}' hehe.txt haha.txt
或
awk -F"," '{if(NR==FNR){a[] = }else{if( in a){printf("%s | %s\n",a[],[=12=])}}}' hehe.txt haha.txt
结果
| 23402269,108147883084318723015500000055,1,0
--
使用 printf 和 %d,我可以得到正确的结果
awk -F"," '{if(NR==FNR){a[] = }else{if( in a){printf("%d | %s\n",a[],[=14=])}}}' hehe.txt haha.txt
结果
55 | 23402269,108147883084318723015500000055,1,0
--
问:不知道为什么,谢谢。
如前所述,检查是否有任何控制 M 字符,如果您需要删除它们,请使用以下命令,然后使用 运行 您的命令。(如果您有 dos2unix
实用程序 运行 它在你的 Input_file 上去掉控制 M 字符)
tr -d '\r' < Input_file > temp_file && mv temp_file Input_file