linux - 如何根据Linux中的条件(使用awk或其他方法)从另一个csv文件中的一个csv文件中替换行?

标签 linux csv awk rows file-processing

first.csv

A , X 
B , Y
C , Z
D , X
E , X
second.csv
A , X , 1
D , X , 4
E , X , 6
所需的output.csv
A , 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/

相关文章:

c++ - 在 Qt 中以 root 身份执行 Linux 命令

regex - 使用 bash 在 Ubuntu 或 Debian 上获取 IP 地址信息(网关和子网)

linux - 代码/模块,用于评估要在 Linux 上的 awk 或 bash 中使用的 bool 表达式

linux - 如何从我的 CSV 文件输出中删除 NONREF,以便在脚本运行时不打印该行?

linux - 如何合并这 3,500 个混合字符集文本文件?

android - 无法启动 Android 模拟器

linux - 安装 memcached 时找不到 libevent 的符号链接(symbolic link)

php - fputcsv 将 HTML 代码插入到 csv 文件中

java - csv 中不显示中文文本

python - 如何并行处理 CSV 文件?