我想做到以下几点,但我似乎没有今天能够环绕它我的大脑......grep的文件从一个文件匹配的grep的结果
我有段数,例如为45.我有一个员工数据文件,以员工的章节号结尾。所以,我可以抓住所有员工:
grep ",45$" /data/employees.dat
现在,返回类似下面的内容。为简洁起见,我省略了多列数据。第一列是ID。最后是部分编号。
38275,...some data...,45
4718573,...some data...,45
328,...some data...,45
现在,在硬的部分...在/数据是一组目录。每个目录名为p ####,其中####是员工编号。这些目录的内部是一组文件。我对/data/p####/contacts.csv感兴趣。我有一个关键值(在本例中为“Bob”),我希望在previous grep的每个员工的contacts.csv文件中找到包含关键值的每一行。我不想亲手做这件事,因为在实际工作中,我将从每个grep中收到几千个结果。
grep Bob /data/p38275/contacts.csv
grep Bob /data/p4718573/contacts.csv
grep Bob /data/p328/contacts.csv
在我看来,我应该可以到grep对文件名的模式,但后来我不得不废话第一的grep在为图案 - 我不认为我能做到。如果唯一的好办法是编写一个脚本来完成这一切,我会这样做。现在,我搞砸了sed和awk,看看有没有什么开始有意义的。
这是正确的,但缺少一半的答案。您必须将原始grep输入到上面的答案中,如下所示:'grep“,45 $”/data/employees.dat | grep Bob $(awk -F,'$ NF == 45 {print“/ data/p”$ 1“/contacts.csv”}')' – kainaw 2015-04-07 13:58:48
啊。不,我只是在awk命令中忘记了文件名 - 它已经选择了。我编辑过;我的错。 – Wintermute 2015-04-07 14:09:54