ubuntu - grep 子目录并保存多个输出

标签 ubuntu unix grep

我有 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/

相关文章:

linux - 对 xargs 生成的命令的各个结果执行 grep

regex - 用于( curl |微软|智能)引号的 grep

regex - 如何让 grep 输出所有匹配的行?

ubuntu - 使用 VLC 在两个屏幕上显示视频

linux - 我正在使用触摸在我桌面上的文件夹中创建一个文件...当我尝试这个时它说找不到命令

linux - 错误 : iptables v1. 4.21:icmp:必须指定选项 "--icmp-type"

c++ - Linux AIO : Poor Scaling

linux - UNIX 和 Linux 服务器中的不同日期格式

c++ -/usr/bin/ld : cannot find -lgmock on ubuntu while running gmock program

linux - 在 ubuntu16.4 上安装 MATLAB 2017 时出现 Permission denied 错误