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

来源:互联网 发布:java获得项目绝对路径 编辑:程序博客网 时间:2024/06/02 06:16

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

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

★ 目标

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

markdown表格大概的样子:

文件名 大小 art.tar.gz 6.0M bionic.tar.gz 3.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.0Mbionic.tar.gz3.7Mbootable.tar.gz18Mbuild.tar.gz3.1Mcts.tar.gz381Mdalvik.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.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

★ 结语

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

原创粉丝点击