我有 32 个目录,每个目录都有一个 .pdb 文件。如何在这些文件上使用 grep 并将每个文件保存到特定的输出?
预期的输出类似于:
1.pdb > 1_clean.pdb
2.pdb > 2_clean.pdb
3.pdb > 3_clean.pdb
...
32.pdb > 32_clean.pdb
我尝试了以下但没有奏效:
grep -r "^ATOM" *.pdb . > *_clean.pdb
最佳答案
查找 + 外壳 解决方案:
find -type f -name "[0-9].pdb" -exec sh -c 'fn=$1; n=${fn##*/}; n=${n%.*}; \
grep "^ATOM" "$fn" > "${n}_clean.pdb"' _ {} \;
关于ubuntu - grep 子目录并保存多个输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46694042/