我正在尝试使用命令行程序将较大的文本文件拆分为块:
- 拆分定义的正则表达式模式
- 由该正则表达式模式中的捕获组定义的文件名
文本文件的格式为:
# Title
# 2020-01-01
Multi-line content
goes here
# 2020-01-02
Other multi-line content
goes here
输出应该是具有以下文件名和内容的这两个文件:
2020-01-01.md ↓</p>
# 2020-01-01
Multi-line content
goes here
2020-01-02.md ↓</p>
# 2020-01-02
Other multi-line content
goes here
我似乎无法正确掌握所有标准。
要拆分的正则表达式模式(分隔符)很简单,类似于^# (2020-.*)$
要么我无法设置一个多行正则表达式模式,它会越过\n
换行符并在下一次出现分隔符模式时停止。
或者我可以在正则表达式模式上拆分csplit
,但我不能用捕获的内容命名文件(2020-.*)
awk split()
or也一样match()
,不能让它完全工作。
我正在寻找一个通用的解决方案,参数是定义块开始(例如# 2020-01-01
)和结束(例如下一个日期标题# 2020-01-02
或EOF
)的正则表达式模式