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

使用AWK包含第一行,并根据文件名设置输出,awk,grep,cat,Awk,Grep,Cat,cat/path/to/file1/path/to/file2 | awk'{if($3~/^TCF/| |$3~/^GLI/)print$0;}'>/path/to/test1.txt 你知道如何: 是否将文件1中的第一行包含在test1.txt输出中? 还有,是否可以包括TCF和GLI是否来自文件1或文件2 多谢各位 试试这个命令: awk '$3~/^TCF/ || $3~/^GLI/ || NR==1 { print FILENAME, $0 }' /path/to/file1 /pa

cat/path/to/file1/path/to/file2 | awk'{if($3~/^TCF/| |$3~/^GLI/)print$0;}'>/path/to/test1.txt

你知道如何:

是否将文件1中的第一行包含在test1.txt输出中? 还有,是否可以包括TCF和GLI是否来自文件1或文件2

多谢各位

试试这个命令:

 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|^GLI/ || NR==1 ) print $0,FILENAME}' /path/to/file1 /path/to/file2 > /path/to/test1.txt
      

      我将添加
      {print FILENAME,$0}
      以显示文件名,如第二个问题所示。
      awk '{if ($3~/^TCF|^GLI/ || NR==1 ) print $0,FILENAME}' /path/to/file1 /path/to/file2 > /path/to/test1.txt