
表格数据转换为Markdown表格格式脚本工具–t2mk.awk
t2mk.awk
工具的作用:从Excel表格或者HTML页面表格复制一段表格内容,想要转换成Markdown表格格式,这时就可以用到t2mk.awk
命令了,也许你会说网上有很多在线Markdown表格转换页面工具,是的,但你不一定什么数据都希望暴露在网络上吧,还是自己写一个工具更加方便一些。
本文介绍下t2mk.awk
脚本工具如何使用,如果你想要深入学习Awk
,可以来这里阅读电子书教程精通Awk编程 。下面看看这个工具怎么使用的吧:
首先,看个示例数据:
Header1 Header2 Header3
Data1 Data2 Data3
Data11 Data21 Data31
Data12 Data22 Data32
Data13 Data23 Data33
接下来执行如下命令:
$ t2mk.awk
执行命令后,你就可以将内容粘贴到命令行的下面了,粘贴完成后按Ctrl
+D
快捷键结束脚本,转换后的格式为:
| Header1| Header2| Header3|
|:---|:---|:---|
| Data1| Data2| Data3|
| Data11| Data21| Data31|
| Data12| Data22| Data32|
| Data13| Data23| Data33|
在Markdown文档中展示的形式为:
Header1 | Header2 | Header3 |
---|---|---|
Data1 | Data2 | Data3 |
Data11 | Data21 | Data31 |
Data12 | Data22 | Data32 |
Data13 | Data23 | Data33 |
t2mk.awk
脚本工具怎么样?是不是很有趣?下面附上脚本内部的代码,也可以来 awesome-shell-script Github地址 看下还有些什么有趣的脚本工具吧。
t2mk.awk
内容:
#!/usr/bin/awk -f
# table data to markdown table format
# 两列用竖线分割 , 第一行为标题
BEGIN{
if(ARGC > 1) {
for(i = 1; i<ARGC; i++){
if( ARGV[i] == "-F" || ARGV[i] == "+F" ){
FS = ARGV[i+1]
printf("Change FS=[%s]\n\n",FS);
ARGV[i]=""
ARGV[i+1]=""
}
}
}
}
NR==1{ # 第一行作为标题
max_col = NF
}
NR==2{ # 第二行,开始前输出表格的分隔符线
txt = ""
for( i = 0; i < max_col;i++)
txt = txt "|:---"
cnt[maxl++] = txt "|"
}
NF==max_col{ # 对列数为max_col的行进行格式化处理
txt = ""
gsub("\\|","\\\\|")
gsub("<","\\<")
gsub("&","\\\\&")
for( i = 1; i <= max_col;i++)
txt = txt "| " $i
cnt[maxl++] = txt "|"
}END{ # 最后输出转换后的Markdown表格格式
print("\n\n")
for(j=0; j < maxl; j++)
printf("%s\n",cnt[j])
}
最后,附赠一个我自己做的Awk命令快查参考图(4K高清图片)。
转载本文时请注明出处及本文链接地址表格数据转换为Markdown表格格式脚本工具–t2mk.awk。