我是一个新编码器,无法编写一个bash脚本,其中我的目录中的所有日志文件(number001.log,number002.log等)都通过perl脚本(map_shifts2PDB.pl)进行处理每个numberXXX.log文件的结果连接到results.out文件。 perl脚本需要以下参数./map_shifts2PDB.pl <path of logfile> <path of test.pdb> (constant)
以及要处理的日志文件的编号。我不知道如何将其与循环中读取的日志文件同步。这就是我到目前为止所做的:
#!/bin/bash
for f in ~/TrpCage_1L2Y/1L2Y_min_explicit/model1_charged/calculate/*.log; do
./map_shifts2PDB.pl ~/TrpCage_1L2Y/1L2Y_min_explicit/model1_charged/calculate ~/TrpCage_1L2Y/1L2Y
_min_explicit/model1_charged/test.pdb 1 >> results.out
done
答案 0 :(得分:0)
只需使用参数扩展从文件名中提取数字:
num=${f##*/number} # Delete everything up to /number.
num=${num%.log} # Delete the extension.
./map_shifts2PDB.pl \
~/TrpCage_1L2Y/1L2Y_min_explicit/model1_charged/calculate \
~/TrpCage_1L2Y/1L2Y_min_explicit/model1_charged/test.pdb \
$num >> results.out
你是什么意思&#34;递归&#34;在标题中?