流编辑文本文件并用增量替换字符串
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"
合并 sed
和 bash
,请您尝试以下操作:
#!/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
我想将 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"
合并 sed
和 bash
,请您尝试以下操作:
#!/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