first.csv
A , X
B , Y
C , Z
D , X
E , X
second.csv
A , X , 1
D , X , 4
E , X , 6
required output.csv
A , X , 1
B , Y
C , Z
D , X , 4
E , X , 6
How to achieve above scenario like replace or adding rows from one CSV to another CSV file based on a condition in linux. Thanks in advance .
I tried below command
awk -F, '{getline f1 <"second.csv" ;if($2=="X"){ $0=f1}print $0}' OFS=, first.csv
but its not working . Replacing same record for all rows which satisfies the condition.
Another 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
$