在一堆子文件夹中,如何在循环遍历数组{1h2s,1kqf,...}并执行grep时,如何只输入包含特定字符串(例如1h2s)的字符串? 子文件夹的全名包含" oligomerAngle-1h2s"或1kqf等加上一堆不规则数字
答案 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文件中......嗯,这是另一个主题。