first.csv
A , X
B , Y
C , Z
D , X
E , X
second.csvA , X , 1
D , X , 4
E , X , 6
所需的output.csvA , X , 1
B , Y
C , Z
D , X , 4
E , X , 6
如何实现上述方案,例如根据Linux中的条件将一个CSV的行替换或添加到另一个CSV文件。 预先感谢。我在命令下面尝试了
awk -F, '{getline f1 <"second.csv" ;if($2=="X"){ $0=f1}print $0}' OFS=, first.csv
但它不起作用。为满足条件的所有行替换相同的记录。
最佳答案
另一个awk
$ awk -F, ' NR==FNR{ a[$1]=$0 ; next } ($1 in a ) { print a[$1] } !($1 in a) { print } ' second.csv first.csv
A , X , 1
B , Y
C , Z
D , X , 4
E , X , 6
$
关于linux - 如何根据Linux中的条件(使用awk或其他方法)从另一个csv文件中的一个csv文件中替换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64537163/