假设我有两个文件,
// 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