流编辑文本文件并用增量替换字符串

Stream edit text file and replace string with increments

我想将 markdown 文件复制到 ~200 个文件,并用递增的更改替换文档中的一些字符串。我应该怎么做?我是一名新的 Web 开发人员,我对 PHP 和 Node.js 的熟悉程度一般,但对 Linux 用户来说还不错。我正在考虑使用 sed,但无法全神贯注。

假设我想复制:

post.md    "this is post _INCREMENT_"

然后我运行:

run generate "post.md" --number 2

生成:

post1.md    "this is post 1"
post2.md    "this is post 2"

合并 sedbash,请您尝试以下操作:

#!/bin/bash

# show usage on improper arguments
usage() {
    echo "usage:  filename.md number"
    exit 1
}

file=                         # obtain filename
[[ -n $file ]] || usage "[=10=]"    # filename is not specified
num= || usage "[=10=]"            # obtain end bumber
(( num > 0 )) || usage "[=10=]"     # number is not specified or illegal

for (( i = 1; i <= num; i++ )); do
    new="${file%.md}$i.md"      # new filename with the serial number
    cp -p -- "$file" "$new"     # duplicate the file
    sed -i "s/_INCREMENT_/$i/" "$new"
                                # replace "_INCREMENT_" with the serial number
done

将上面的脚本保存为文件 generate 或其他文件,然后 运行:

bash generate post.md 2