0

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,是否可以包括在内?

非常感谢你!

4

3 回答 3

1

试试这个命令:

 awk '$3~/^TCF/ || $3~/^GLI/ || NR==1 { print FILENAME, $0 }' /path/to/file1 /path/to/file2 > /path/to/test1.txt
  • NR是总输入流中的当前记录号。
  • FILENAME是当前输入文件的名称。
于 2013-10-17T09:58:08.787 回答
0
awk '{
      if ($3~/^TCF/ || $3~/^GLI/ || NR==1 ) 
      print $0,FILENAME
     }' /path/to/file1 /path/to/file2 >/path/to/test1.txt
于 2013-10-17T10:23:48.487 回答
0

可以缩短一些

awk '{if ($3~/^TCF|^GLI/ || NR==1 ) print $0,FILENAME}' /path/to/file1 /path/to/file2 > /path/to/test1.txt
于 2013-10-17T11:33:50.643 回答