如果两个文件有关联【比如处理后面的文件时,需要用到第一个文件卜樱相同行上的一些数据】可以用awk数组(类似词典)先将第一个文件的数据进行保存
区分第段此一、第二个文件的办法:
FNR==NR{#这是第一个文件,这里可以写保存数据的代码,比如data[FNR]=$0}
NR>FNR{#【或NR!=FNR】是第二个文件,可以在这里写数据握弊迅处理方式,比如print $0+data[FNR] }
实现你的需求其实不需要awk,使用join
反而更简单;
join
-t'|'
-a1
a
b
一个命令搞定;简单解释一下,join可以连接有相同字段誉皮芦的文件,-t
指定分隔符为
‘|’,-a1
意思是左连接
a
文件;
使用这条命令得到的结果会和你要求的格式有一点小小的出入,表握虚现庆带在'|'的数量上,修正如下:
join
-t'|'
-a1
a
b
|
sed
-e
's/||/|/g'
|
sed
'/TCSI/!s/|$/&|/g'
会得到你要的结果
使用我提供的命令有一个前提:
PSID这个字段是排过序的,看你提供的样例应该是满足的;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)