【发布时间】:2018-03-27 08:25:58
【问题描述】:
假设我有以下文本文件:
$ cat file1.txt 输出
MarkerName Allele1 Allele2 Freq1 FreqSE P-value Chr Pos
rs2326918 a g 0.8510 0.0001 0.5255 6 130881784
rs2439906 c g 0.0316 0.0039 0.8997 10 6870306
rs10760160 a c 0.5289 0.0191 0.8107 9 123043147
rs977590 a g 0.9354 0.0023 0.8757 7 34415290
rs17278013 t g 0.7498 0.0067 0.3595 14 24783304
rs7852050 a g 0.8814 0.0006 0.7671 9 9151167
rs7323548 a g 0.0432 0.0032 0.4555 13 112320879
rs12364336 a g 0.8720 0.0015 0.4542 11 99515186
rs12562373 a g 0.7548 0.0020 0.6151 1 164634379
这是一个 awk 命令,如果 Pos >= 11000000 则打印 MarkerName
$ awk '{ if($8 >= 11000000) { print $1 }}' file1.txt
此命令输出以下内容:
MarkerName
rs2326918
rs10760160
rs977590
rs17278013
rs7323548
rs12364336
rs12562373
问题:我想将此输入grep 语句以解析另一个文本文件textfile2.txt。不知何故,将前一个awk 命令的输出通过管道传输到grep AWKOUTPUT textfile2.txt
我希望上面 awk 命令的每一行都是 grepped 与 textfile2.txt,即
grep "rs2326918" textfile2.txt
## and then
grep "rs10760160" textfile2.txt
### and then
...
当然,我会将 textfile2.txt 中的所有结果行保存到最终文件中,即
$ awk '{ if($8 >= 11000000) { print $1 }}' file1.txt | grep PIPE_OUTPUT_BY_ROW textfile2.txt > final.txt
一个grep如何逐行从管道中提取?
编辑:澄清一下,我的一个约束是 file1.txt 实际上是前一个管道的输出。 (我试图在某种程度上简化问题。)这将如何改变答案?
【问题讨论】:
-
您的问题非常不清楚,但很清楚的是,您当前接受的答案绝对不是如何做任何事情。如果您需要帮助,请edit您的问题以阐明您的要求并提供简洁、可测试的示例输入和预期输出。