【发布时间】:2013-10-17 09:50:42
【问题描述】:
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,是否可以包含?
非常感谢!
【问题讨论】:
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 是当前输入文件的名称。【讨论】:
{print FILENAME, $0} 以显示文件名。
可以缩短一些
awk '{if ($3~/^TCF|^GLI/ || NR==1 ) print $0,FILENAME}' /path/to/file1 /path/to/file2 > /path/to/test1.txt
【讨论】:
awk '{
if ($3~/^TCF/ || $3~/^GLI/ || NR==1 )
print $0,FILENAME
}' /path/to/file1 /path/to/file2 >/path/to/test1.txt
【讨论】: