副标题: “我是来学习的。”
我需要将 Markdown 中的几个链接集合转换为另一种格式(具体而言,通过此脚本将文件中的每一行作为单个注释发送到 Evernote )。
我的示例文件都如下所示:
* [REF_1](URL)
* [REF_2](URL)
* [REF_3](URL)
编辑:或更准确地说:
* [Koken Installtion Help](http://help.koken.me/customer/portal/articles/632102-installation)
* [A couple of Sass functions](http://hugogiraudel.com/2013/08/12/sass-functions/)
* [Chris Coyier's Favorite CodePen Demos](http://davidwalsh.name/chris-coyiers-favorite-pens)
……这是我的作战计划:
- 解析每一行
- 去掉前导星号/连字符/加号后跟空格
^[\*\-\+]\s
[REF]
将(方括号之间的所有内容)的内容与正则表达式匹配(?<=\[)(.*)(?=\])
并将其设置为变量${titel}
[URL]
将(括号之间的所有内容)的内容与正则表达式匹配(?<=\()(.*)(?=\))
并将其设置为变量${url}
- 如下例所示格式化新输出。
- 保存到变量/剪贴板/标准输出(←我不知道哪个效果最好)并
markdown2evernote.rb
在上面运行 - 所有线路都发送?→ 完成。
示例(见第 5 点):
Notebook: ${notebook}
Title: ${title}
Url: ${url}
Keywords: ${keywords}
Content Area
Will use the $title and $url variable here again.
坦率地说,我还没有走多远。我已经被困在第二点,因为我不知道如何让正则表达式工作。目前,我的 bash 脚本如下所示:
#!/bin/sh
document=~/file.txt
notebook="My test notebook"
keywords="test, demo"
cat ${document} | while read line; do \
echo "$line" | sed -e '(?<=\[)(.*)(?=\])'; \
done
我不在乎它是否是一个 sed/grep/awk 解决方案——只要它是一个 shell 脚本,我就接受它。
在检查了列表中的第 2 点和第 3 点并达到我可以将格式化的输出移交给 ruby 脚本的目标之后,我还想知道什么是最好的方法。
如上所述,我有一个模糊的想法,但这是一个相当大的挑战,因为到目前为止我编写的脚本要简单得多,并且不涉及上述任何内容。