如何增加文本文件中的值并生成相应的增量输出文本文件?
How to increment a value in a text file and generate corresponding incremented ouput text files?
我有这些类型的 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_0001" 并应相应地命名为 Bash0001.txt、Bash002.txt 等。
不确定我是否清楚。
这可能是我应该使用哪个工具?
awk 是一个选项吗?我查看了该工具,但无法理解语法。
假设你上面的文件名为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
我有这些类型的 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_0001" 并应相应地命名为 Bash0001.txt、Bash002.txt 等。
不确定我是否清楚。 这可能是我应该使用哪个工具? awk 是一个选项吗?我查看了该工具,但无法理解语法。
假设你上面的文件名为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