Shell脚本实现将文本内容格式化为markdown表格文本

14 篇文章 0 订阅

背景介绍:

在使用markdown编辑表格的时候,需要对文本内容添加|等符号,数据量大的时候需要花费较多时间插入符号,为节省时间提高效率,尝试写了可以自动化批量将待处理的文本内容格式化为markdown表格文本的Shell脚本,并可以交互式插入标题,最终生成带标题的markdown表格形式的文本内容。

实现代码:

#!/bin/bash
#Author:cosann
#Create Time:20220627
#Description:将文本格式化为markdown表格形式的文本内容

#变量值初始化
unset com

#交互式定义待处理文本和指定分隔符
read -p "###请输入要格式化的文本: " filetxt
read -p "###请指定分隔符类型[直接回车表示默认空格]:"  com

#判断用户输入的分隔符,初始化分隔符
if [ -z $com ];then
    com=" "
fi

#将文本主要内容文本格式化为markdown形式的文本
sed   -i 's/'"$com"'/|/g;s/^/|/;s/$/|/' $filetxt  2&>1 /dev/null

#交互式定义标题数量值
read -p "请问有几个标题:" number

#生成|---|符号

#插入新行 |
sed -i '1 i\|' $filetxt

#根据标题次数,利用for循环打印 |---| 符号

for (( i=1; i<=${number}; i++ ))
do  
    sed -i '1 s/$/---|/' $filetxt
done

#插入标题行新行|
sed -i '1 i\|' $filetxt

#插入标题
for (( i=1; i<=${number}; i++ ))
    do  
            read -p "请输入第$i个标题: " title
            sed -i '1 s/$/'"$title"'|/' $filetxt
    done

#打印处理结果提示
echo -e "====================\n===文本格式化完毕===\n====================\n" 

#输出文本内容
cat "./$filetxt"

#!!!注意!!!
#脚本文件和处理文本请放在同一个文件目录

使用案例举例:

#提前准备待处理文件test.txt及脚本文件mk.sh
#查看文本内容
cat test.txt
123 456 789
654 789 789

#test.txt的文本内容分隔符为空格,因此调用脚本时直接回车,不需要另外指定

#运行脚本前记得赋予执行权限
chmod +x mk.sh

#执行脚本
./mk.sh
###请输入要格式化的文本: 					#提示要格式化的文本,输入test.txt
###请指定分隔符类型[直接回车表示默认空格]:		#提示指定分隔符,分隔符为空格直接回车即可,若为其他;等符号,输入对应符号即可
请问有几个标题:								#指定标题数量
请输入第1个标题: 							#输入标题
请输入第2个标题:
请输入第3个标题: 

#脚本执行完毕后显示结果
|标题1|标题2|标题3|
|---|---|---|
|123|456|789|
|654|789|789|

接下来只要将格式化后的文本复制到支持markdown的软件即可自动生成标题

  • markdown表格文本内容:
    image.png

  • 表格生成结果:
    image.png


初学shell脚本,欢迎技术交流~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值