使用循环和grep来处理子文件夹

时间:2016-04-27 07:48:49

标签: arrays loops grep subdirectory

在一堆子文件夹中,如何在循环遍历数组{1h2s,1kqf,...}并执行grep时,如何只输入包含特定字符串(例如1h2s)的字符串? 子文件夹的全名包含" oligomerAngle-1h2s"或1kqf等加上一堆不规则数字

2 个答案:

答案 0 :(得分:2)

使用find:
find . -type d -name \*1h2s\* -exec grep search {}/* \;

find .向下搜索当前目录 -type d表示只查找目录 -name \*1h2s\*仅匹配具有此名称的目录(您需要从shell中转义*) -exec grep search {}/* \;对找到的目录中的每个文件运行grep

注意:如果找到的目录中没有文件,或者如果有子目录,这将导致来自grep的一些错误消息,如果您不想看到它们,可以在命令中添加2>/dev/null

答案 1 :(得分:0)

最后得到了这个并且还有多个字符串:

find ~/aaPROJECT/helicalPair_ax/selectedPairs/renumberedPdb/clusterPairs-1.25-12-05_windows.12.resle3.2A.RMSD1.3/oligomerAngle/ -type d -name \*1h2s\* -exec grep -E "Distance|Local angle|Average angle" {}/pairsAngles.txt \;

但是,在网上尝试了所有现有解决方案后,无法将结果输出到txt文件中......嗯,这是另一个主题。