我首先应该感谢大家对本网站上的所有答案。我花了很多时间阅读他们,但还没有发现任何符合我的问题。因此,我自己的职位。在文件夹上使用awk并将文件名添加到输出行中
我有一个文件夹中有多个子文件夹和txt文件。在这些文件的第7列中,有基因名称(我为生存做遗传学:))。这些是我想要提取的字符串。不久,我想在整个文件夹中搜索包含特定基因名称/字符串的任何文件中的任何行。我一直用grep这个,写东西,如:
grep -r GENE . > GENE.txt
简单,但我需要能够进一步调整搜索,似乎再AWK是要走的路。
所以我尝试使用awk。我写的是这样的:(?现在我可以指定字符串必须是在一个特定的列,这我不能使用grep做,右)
awk '$7 == "GENENAME"' FOLDER/* > GENENAME.txt
这种运作良好。 然而,与grep相比,它在每行开头写入文件名,现在我不能直接看到哪个文件在我的输出文件中的哪一行来自哪个文件(大多数情况下会破坏搜索点)。这样,在每行的某处添加原始文件的名称似乎是绝对可行的,但我无法弄清楚。
我在搜索范围内搜索的文件(或更确切地说是更多),但否则我的搜索将始终是在同一个大文件夹的第7列中的某些特定字符串。我怎样才能得到这个工作?
谢谢你在前进, 伊丽莎白·ê
*在每行的某个位置添加源文件的名称* - 不清楚 – RomanPerekhrest
那么,如果您知道如何定义一个列,例如,您可以使'grep'只搜索某个特定列。 'seq 10 | tr'\ n'''| grep -E'^([^] +){6} 7''。 –