包含AWK的第一行并根据文件名设置输出

时间:2013-10-17 09:50:43

标签: awk grep cat

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?

非常感谢!

3 个答案:

答案 0 :(得分:1)

尝试此命令:

 awk '$3~/^TCF/ || $3~/^GLI/ || NR==1 { print FILENAME, $0 }' /path/to/file1 /path/to/file2 > /path/to/test1.txt
  • NR 是总输入流中的当前记录编号。
  • FILENAME 是当前输入文件的名称。

答案 1 :(得分:0)

awk '{
      if ($3~/^TCF/ || $3~/^GLI/ || NR==1 ) 
      print $0,FILENAME
     }' /path/to/file1 /path/to/file2 >/path/to/test1.txt

答案 2 :(得分:0)

可以缩短一些

awk '{if ($3~/^TCF|^GLI/ || NR==1 ) print $0,FILENAME}' /path/to/file1 /path/to/file2 > /path/to/test1.txt