cat /path/to/file1 /path/to/file2 | awk '{if ($3~/^TCF/ || $3~/^GLI/) print $0;}' > /path/to/test1.txt
你知道怎么:
在 test1.txt 输出中包含 file1 的第一行?而且,如果 TCF 和 GLI 来自 file1 或 file2,是否可以包括在内?
非常感谢你!
试试这个命令:
awk '$3~/^TCF/ || $3~/^GLI/ || NR==1 { print FILENAME, $0 }' /path/to/file1 /path/to/file2 > /path/to/test1.txt
NR
是总输入流中的当前记录号。FILENAME
是当前输入文件的名称。awk '{
if ($3~/^TCF/ || $3~/^GLI/ || NR==1 )
print $0,FILENAME
}' /path/to/file1 /path/to/file2 >/path/to/test1.txt
可以缩短一些
awk '{if ($3~/^TCF|^GLI/ || NR==1 ) print $0,FILENAME}' /path/to/file1 /path/to/file2 > /path/to/test1.txt