loops - 将循环合并到文件处理中
问题描述
我有几行看起来像这样的代码,尽管它只能处理一个文件(5cym24.pdb),即:
grep -E 'TRP' 5cym24.pdb > 5cym24_d.pdb
grep -E 'CYS' 5cym24.pdb > 5cym24_b.pdb
sed -n '3030,3106p;3138,3205p;3238,3268p;3329,3361p;3423,3453p' 5cym24.pdb > 5cym24_a.pdb
awk '{$1=$1}1' OFS=, 5cym24_d.pdb > 5cym24_d.csv
awk '{$1=$1}1' OFS=, 5cym24_b.pdb > 5cym24_b.csv
awk '{$1=$1}1' OFS=, 5cym24_a.pdb > 5cym24_a.csv
我的问题是,我如何包含一个循环,以便它处理我拥有的许多pdb文件,即5cymX.pdb,例如,其中X的范围从 24 到 70,从而生成5cymX_d.pdb、5cymX_b.pdb、5cymX_a .pdb、5cymX_d.csv、5cymX_b.csv、5cymX_a.csv。谢谢!
解决方案
尝试这个:
#!/bin/bash
do_work() {
grep -E 'TRP' "5cym$1.pdb" > "5cym$1_d.pdb"
grep -E 'CYS' "5cym$1.pdb" > "5cym$1_b.pdb"
sed -n '3030,3106p;3138,3205p;3238,3268p;3329,3361p;3423,3453p' "5cym$1.pdb" > "5cym$1_a.pdb"
awk '{$1=$1}1' OFS=, "5cym$1_d.pdb" > "5cym$1_d.csv"
awk '{$1=$1}1' OFS=, "5cym$1_b.pdb" > "5cym$1_b.csv"
awk '{$1=$1}1' OFS=, "5cym$1_a.pdb" > "5cym$1_a.csv"
}
for i in $(seq 24 70); do
do_work "$i"
done
推荐阅读
- go - 在 golang 中显示一周的第二天
- php - 会话的价值没有改变
- xml - XSLT:如何将身份转换的输出复制到 xslt 变量?
- ios - 在 UITableViewCell 内使用 UICollectionView 滚动滞后(闪烁)
- ios - 自定义单元格中的按钮操作未调用委托函数
- java - 为什么不需要捕获/处理这个抛出的异常?
- php - Codeigniter 通过单击更改图像,在第二次编辑时不起作用?
- angularjs - 如何在工具提示中显示 html ng-repeat
- javascript - 在 NodeJS 中将 JSON 转换为 TXT 格式
- haskell - Haskell 写入文件