如何用Bash脚本为Markdown文件指定行条件添加前缀字符?
解决方案
1. 为所有不以#开头的行添加前缀
创建脚本add_prefix_non_heading.sh,内容如下:
#!/bin/bash # 可修改PREFIX变量自定义前缀 PREFIX="PREFIX" awk -v prefix="$PREFIX" '!/^#/ { $0 = prefix $0 } 1'
运行方式:
cat ./example.md | ./add_prefix_non_heading.sh
处理后效果:
TitlePREFIXWords
PREFIXMore wordsTitle 2
PREFIX123
2. 仅为以字母开头的行添加前缀
创建脚本add_prefix_letter_start.sh,内容如下:
#!/bin/bash PREFIX="PREFIX" awk -v prefix="$PREFIX" '/^[a-zA-Z]/ { $0 = prefix $0 } 1'
运行方式:
cat ./example.md | ./add_prefix_letter_start.sh
处理后效果:
TitlePREFIXWords
PREFIXMore wordsTitle 2
123
脚本说明
- 通过
-v prefix="$PREFIX"将Shell变量传入awk,方便快速修改前缀内容 !/^#/用于匹配不以#开头的行,/^[a-zA-Z]/用于匹配以大小写字母开头的行- 末尾的
1是awk的简写语法,等价于{print $0},负责输出所有处理后的行
内容的提问来源于stack exchange,提问作者BirdsAreBastards
相关产品推荐
相关产品推荐

