我有一个很长的期刊标题常用缩写列表。列表中,完整单词后面跟着其缩写。例如:
- 行政
- 行政。
- 应用
- 应用
- 行政的
- 管理。
- 近似
- 大约。
我想将列表转换为 Markdown 表,如下所示:
单词 | 缩写 |
---|---|
行政 | 行政。 |
应用 | 应用 |
问题是手动操作会花很长时间。所以,我正在寻找某种更快的方法。如果有帮助的话,所有缩写形式都以句号 (.) 结尾。
我在网上查过,但没找到任何相关内容。所以我在这里问。有什么帮助吗?
答案1
假设我们有来自您问题的列表输入文件。我们可以使用以下命令填充它:
cat <<EOF > words+abbrs.txt
Administration
Admin.
Applied
Appl.
Administrative
Administ.
Approximate
Approx.
EOF
可以使用简单的脚本在 Ubuntu 上创建 Markdown 表,如下所示:
愚蠢的分步方法
# write table header echo "**Word** | **Abbreviation**" > table.md echo "- | -" >> table.md # extract odd lines as words to file words.txt awk 'NR%2==1' words+abbrs.txt > words.txt # extract even lines as abbreviations to file abbrs.txt awk 'NR%2==0' words+abbrs.txt > abbrs.txt # combine columns from words.txt and abbrs.txt with '|' separator paste -d '|' words.txt abbrs.txt >> table.md
智能单行方法(感谢@steeldriver)
{ printf '%s\n' '**Word** | **Abbreviation**' '-|-'; paste -d '|' - - < words+abbrs.txt; } > table.md
你将获得包含以下内容的 Markdown 文件:
$ cat table.md **Word** | **Abbreviation** - | - Administration|Admin. Applied|Appl. Administrative|Administ. Approximate|Approx.
因此它将被渲染为 HTML
单词 缩写 行政 行政。 应用 应用 行政的 管理。 近似 大约。
有关使用过的工具的更多信息:
man awk
本地或在线的;man paste
本地或在线的- GNU Awk 用户指南
- Bash指南
- 高级 Bash 脚本指南
答案2
如果你会使用 Pandoc,它可以将 CSV 转换为 Markdown。假设你有一个每行一个单词的文件,例如在 N0rbert 的回答中,您可以使用将其转换为 CSV paste -d, - -
,然后将其发送到 Pandoc:
% (printf "%s\n" Word Abbreviation; cat input-file) | paste -d, - - | pandoc -f csv -t markdown_phpextra
| Word | Abbreviation |
|----------------|--------------|
| Administration | Admin. |
| Applied | Appl. |
| Administrative | Administ. |
| Approximate | Approx. |
给予:
单词 | 缩写 |
---|---|
行政 | 行政。 |
应用 | 应用 |
行政的 | 管理。 |
近似 | 大约。 |
(可能不需要对标题进行进一步格式化,因为表头的格式通常不同。)