【问题标题】:How to increment a value in a text file and generate corresponding incremented ouput text files?如何增加文本文件中的值并生成相应的增量输出文本文件?
【发布时间】:2015-07-28 21:29:39
【问题描述】:

我有这些类型的 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 是一种选择吗?我查看了该工具,但无法理解语法。

【问题讨论】:

    标签: bash text awk increment


    【解决方案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
    

    【讨论】:

    • 优秀。非常感谢 :) 就我而言,我不得不将 print 更改为 printf。
    • 是的 print 而不是 printf 是一个错字。很高兴它成功了。
    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 2015-08-18
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多