当前位置: 技术问答>linux和unix
grep,awk的使用问题求教
来源: 互联网 发布时间:2017-04-19
本文导语: 我需要处理两个文件A,B A文件中每行为tab分割的若干列,其中第6列中可能含有字符‘XY_’或‘XZ_’,其他列不含该字符 B文件中也是为每行都为tab分割的若干列 现在我需要从A文件中将含有‘XY_’(或‘XZ_’)的列取...
我需要处理两个文件A,B
A文件中每行为tab分割的若干列,其中第6列中可能含有字符‘XY_’或‘XZ_’,其他列不含该字符
B文件中也是为每行都为tab分割的若干列
现在我需要从A文件中将含有‘XY_’(或‘XZ_’)的列取出来,然后再到B文件中去查询含有该列信息的行,并将该行的第1,3,4个域(列)给取出来,并且附加到对于A文件行的后面一起输出到文件C中
我已经用perl实现了该功能,但是用grep和awk的时候一直有个问题,这里应该用awk从A文件中取出满足条件的第六列,然后用grep获取该信息到B文件中去查询,再用awk对查询到的结果进行选择输出,并且这个输出要附加到对应A文件中的行后面一起输出到新的文件
红色标出的文字为我一直想不出该怎么解决的地方,求教各位大神援手!
多谢!
A文件中每行为tab分割的若干列,其中第6列中可能含有字符‘XY_’或‘XZ_’,其他列不含该字符
B文件中也是为每行都为tab分割的若干列
现在我需要从A文件中将含有‘XY_’(或‘XZ_’)的列取出来,然后再到B文件中去查询含有该列信息的行,并将该行的第1,3,4个域(列)给取出来,并且附加到对于A文件行的后面一起输出到文件C中
我已经用perl实现了该功能,但是用grep和awk的时候一直有个问题,这里应该用awk从A文件中取出满足条件的第六列,然后用grep获取该信息到B文件中去查询,再用awk对查询到的结果进行选择输出,并且这个输出要附加到对应A文件中的行后面一起输出到新的文件
红色标出的文字为我一直想不出该怎么解决的地方,求教各位大神援手!
多谢!
|
#!/bin/bash
A=$1
B=$2
for i in `cat $A | awk '{print $6}' | egrep "XY_|XZ_"`
do
w=`grep $i $B`
[ -n "$w" ] && echo "$i $w" > C
done
A=$1
B=$2
for i in `cat $A | awk '{print $6}' | egrep "XY_|XZ_"`
do
w=`grep $i $B`
[ -n "$w" ] && echo "$i $w" > C
done