快速生成 markdown 表格:针对文件列表和文件大小

快速生成 markdown 表格:针对文件列表和文件大小

注:在linux环境或者cygwin环境中操作。

★ 目标

有一些文件,用这些文件生成一个表格(markdown中的表格),表格有两列,一列是文件名,一列是文件大小。

markdown表格大概的样子:

文件名大小
art.tar.gz6.0M
bionic.tar.gz3.7M

上面这个markdown表格的原始代码为:

| 文件名 | 大小 |
| --- | --- |
| art.tar.gz | 6.0M |
| bionic.tar.gz | 3.7M |

所以,我的目标是将文件名和文件大小整理成| art.tar.gz | 6.0M |这个形式。
然后加上表格标题(| 文件名 | 大小 |)和分割线(| --- | --- |),就完成markdown表格了。

★ 已有文件

已有的文件列表如下:
注:这是android_8.0.0_r17的代码,分目录压缩了。
一共是26个文件。(注:执行ls | wc -l可以知道文件的数量,不用一个个去数了)

$ ls -l
总用量 13G
-rw-rw----+ 1 galian galian 6.0M 105 07:59 art.tar.gz
-rw-rw----+ 1 galian galian 3.7M 105 07:59 bionic.tar.gz
-rw-rw----+ 1 galian galian  18M 105 07:59 bootable.tar.gz
-rw-rw----+ 1 galian galian 3.1M 105 07:59 build.tar.gz
-rw-rw----+ 1 galian galian 381M 105 08:01 cts.tar.gz
-rw-rw----+ 1 galian galian 1.2M 105 08:01 dalvik.tar.gz
-rw-rw----+ 1 galian galian 277M 105 08:02 developers.tar.gz
-rw-rw----+ 1 galian galian  90M 105 08:02 development.tar.gz
-rw-rw----+ 1 galian galian 168M 105 08:03 device.tar.gz
-rw-rw----+ 1 galian galian  28M 105 08:03 docs.tar.gz
-rw-rw----+ 1 galian galian 1.5G 105 08:11 external.tar.gz
-rw-rw----+ 1 galian galian 918M 105 08:13 frameworks.tar.gz
-rw-rw----+ 1 galian galian  40M 105 08:13 hardware.tar.gz
-rw-rw----+ 1 galian galian  81K 105 08:13 kernel.tar.gz
-rw-rw----+ 1 galian galian  10M 105 08:14 libcore.tar.gz
-rw-rw----+ 1 galian galian  29K 105 08:14 libnativehelper.tar.gz
-rw-rw----+ 1 galian galian  243 105 07:54 makefile.tar.gz
-rw-rw----+ 1 galian galian 144M 105 08:15 packages.tar.gz
-rw-rw----+ 1 galian galian 149K 105 08:15 pdk.tar.gz
-rw-rw----+ 1 galian galian 395K 105 08:15 platform_testing.tar.gz
-rw-rw----+ 1 galian galian 7.9G 105 08:39 prebuilts.tar.gz
-rw-rw----+ 1 galian galian 6.9M 105 08:39 sdk.tar.gz
-rw-rw----+ 1 galian galian 196M 105 08:40 system.tar.gz
-rw-rw----+ 1 galian galian 3.4M 105 08:40 test.tar.gz
-rw-rw----+ 1 galian galian  29M 105 08:40 toolchain.tar.gz
-rw-rw----+ 1 galian galian 1.4G 105 08:42 tools.tar.gz

★ 使用awk命令快速提取文件名和文件大小

对于ls -l显示的信息有9列,每一列以空格分割。
例如:

-rw-rw----+ 1 galian galian 6.0M 105 07:59 art.tar.gz

其中第5列是文件大小,第9列是文件名。

用awk提取第5列和第9列:

$ ls -l | awk -F' ' '{print $9 $5}'

art.tar.gz6.0M
bionic.tar.gz3.7M
bootable.tar.gz18M
build.tar.gz3.1M
cts.tar.gz381M
dalvik.tar.gz1.2M
略

这个命令只是验证了可以提取到文件名和文件大小。但是这个样式不是我想要的格式,还需要改进awk命令。需要将文件名和文件大小改造成| art.tar.gz | 6.0M |这个形式。

加上竖线和空格就好了,命令如下:

ls -l | awk -F' ' '{print "| " $9 " | " $5 " |"}'

可以看到,添加了3个竖线:"| "" | "" |"。加上的空格,是为了美观,并且便于阅读。
执行上面的命令,结果如下(完整的结果):
注:第一行中的| | |是由于ls -l的第一行是“总用量 13G”,这一行中没有第5列和第9列。所以为空。不过没有关系,| | |是有用的,后面还要再加东西。

$ ls -l | awk -F' ' '{print "| " $9 " | " $5 " |"}'
|  |  |
| art.tar.gz | 6.0M |
| bionic.tar.gz | 3.7M |
| bootable.tar.gz | 18M |
| build.tar.gz | 3.1M |
| cts.tar.gz | 381M |
| dalvik.tar.gz | 1.2M |
| developers.tar.gz | 277M |
| development.tar.gz | 90M |
| device.tar.gz | 168M |
| docs.tar.gz | 28M |
| external.tar.gz | 1.5G |
| frameworks.tar.gz | 918M |
| hardware.tar.gz | 40M |
| kernel.tar.gz | 81K |
| libcore.tar.gz | 10M |
| libnativehelper.tar.gz | 29K |
| makefile.tar.gz | 243 |
| packages.tar.gz | 144M |
| pdk.tar.gz | 149K |
| platform_testing.tar.gz | 395K |
| prebuilts.tar.gz | 7.9G |
| sdk.tar.gz | 6.9M |
| system.tar.gz | 196M |
| test.tar.gz | 3.4M |
| toolchain.tar.gz | 29M |
| tools.tar.gz | 1.4G |

★ 改造成markdown表格

添加上表格标题和分割线,就成了markdown表格,如下

| 文件名 | 大小(单位:字节) |
| -- | -- |
| art.tar.gz | 6.0M |
| bionic.tar.gz | 3.7M |
| bootable.tar.gz | 18M |
| build.tar.gz | 3.1M |
| cts.tar.gz | 381M |
| dalvik.tar.gz | 1.2M |
| developers.tar.gz | 277M |
| development.tar.gz | 90M |
| device.tar.gz | 168M |
| docs.tar.gz | 28M |
| external.tar.gz | 1.5G |
| frameworks.tar.gz | 918M |
| hardware.tar.gz | 40M |
| kernel.tar.gz | 81K |
| libcore.tar.gz | 10M |
| libnativehelper.tar.gz | 29K |
| makefile.tar.gz | 243 |
| packages.tar.gz | 144M |
| pdk.tar.gz | 149K |
| platform_testing.tar.gz | 395K |
| prebuilts.tar.gz | 7.9G |
| sdk.tar.gz | 6.9M |
| system.tar.gz | 196M |
| test.tar.gz | 3.4M |
| toolchain.tar.gz | 29M |
| tools.tar.gz | 1.4G |

显示的效果,如下:

文件名大小(单位:字节)
art.tar.gz6.0M
bionic.tar.gz3.7M
bootable.tar.gz18M
build.tar.gz3.1M
cts.tar.gz381M
dalvik.tar.gz1.2M
developers.tar.gz277M
development.tar.gz90M
device.tar.gz168M
docs.tar.gz28M
external.tar.gz1.5G
frameworks.tar.gz918M
hardware.tar.gz40M
kernel.tar.gz81K
libcore.tar.gz10M
libnativehelper.tar.gz29K
makefile.tar.gz243
packages.tar.gz144M
pdk.tar.gz149K
platform_testing.tar.gz395K
prebuilts.tar.gz7.9G
sdk.tar.gz6.9M
system.tar.gz196M
test.tar.gz3.4M
toolchain.tar.gz29M
tools.tar.gz1.4G

★ 结语

熟练掌握awk命令,可以方便的处理文本,提高工作效率。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值