我有这些类型的bash文本文件:
#!/bin/sh
#SBATCH --partition=mono-shared
#SBATCH --cpus-per-task=1
#SBATCH --ntasks=1
#SBATCH --time=05:00:00
#SBATCH --mail-user=
#SBATCH --mail-type=ALL
#SBATCH --clusters=
module load rdkit
srun /opt/xxx /home/rand/data/DB_split/DB_0001.txt 0.001 /models/computetd/ /home/rand/DBIS_results/DB_0001
我有455个输入文本文件。我想生成455个相应的bash文件。每个bash文件应该以粗体数字递增“srun / opt / xxx /home/rand/data/DB_split/DB_0001.txt 0.001 / models / computetd / / home / rand / DBIS_results / DB_ < strong> 0001 “并且应该相应地命名为Bash0001.txt,Bash002.txt等。
不确定我是否清楚。 这可能我应该使用哪种工具? awk是一个选择吗?我查看了该工具,但无法弄清楚语法。
答案 0 :(得分:1)
假设您的上述文件名为Bash0001.txt
,则可以使用此脚本:
for ((i=2; i<=455; i++)); do
printf -v fn '%04d' $i
sed "s/DB_0001/DB_${fn}/g" Bash0001.txt > "Bash${fn}.txt"
done