粘贴:合并每行的行,最多仅包含最小 row-ct 文件中的行数

粘贴:合并每行的行,最多仅包含最小 row-ct 文件中的行数

假设我有两个文件,

// foo
a
b
c
d

// bar
x,y,z
p,d,q

问题是:

paste -d ',' foo bar

... 

a,x,y,z
b,p,d,q
c
d

相反,我想(以某种方式)产生以下内容:

a,x,y,z
b,p,d,q

然而,目前,我看到的唯一方法是编写一个小程序来检查最小文件的行数,并对截断的文件运行粘贴。

最坏的情况是,我必须编写一个编译的自制工具来保持命令行“简单”,以实现快速脚本编写和敏捷性。

一定有某种方法可以使用现有的工具来做到这一点,但我不知道如何做。有没有办法进行这种保守的粘贴操作?

我目前最好的解决方案是:

paste -d ',' foo bar | awk -F ',' '{if(NF > 2){print $0}}'

答案1

尝试

$ awk -F, 'FNR == NR {T[NR] = $0; next} {$0 = T[FNR] OFS $0} NF == 4' OFS=, file[12]
a,x,y,z
b,p,d,q

相关内容