我有两个文件,每个文件有两个列,我想比较两个文件的第一列。如果第一个文件中第一列的值在第二个文件中不存在,那么我想将第一个文件第一列中的值附加到第二个文件,例如
第一个文件.log
1457935407,998181
1457964225,998191
1457969802,997896
secondFile.log
1457966024,1
1457967635,1
1457969802,5
1457975246,2
之后,secondFile.log 应该如下所示:
1457935407,null
1457964225,null
1457966024,1
1457967635,1
1457969802,5
1457975246,2
注意:第二个文件更新后应按第一列排序。
最佳答案
使用 awk
和 sort
:
awk 'BEGIN{FS=OFS=","} FNR==NR{a[$1]; next} {delete a[$1]; print} END{
for (i in a) print i, "null"}' firstFile.log secondFile.log |
sort -t, -k1 > $$.temp && mv $$.temp secondFile.log
1457935407,null
1457964225,null
1457966024,1
1457967635,1
1457969802,5
1457975246,2
关于linux - 使用 bash 和 awk 比较两个文件并更新第二个文件并对第二个文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35994777/