2017-10-11 92 views
1

我有32個目錄,每個.pdb文件。我如何在這些文件上使用grep並將每個文件保存到特定的輸出?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 

回答

1

找到 + 解決方案:

find -type f -name "[0-9].pdb" -exec sh -c 'fn=$1; n=${fn##*/}; n=${n%.*}; \ 
     grep "^ATOM" "$fn" > "${n}_clean.pdb"' _ {} \;