Shell Script - Table in Script

前言

Shell Script在列出清單的時候可以有邊框看起來像table

基本指令

| tr : , | sed -e 's/^/| /' -e 's/,/,| /g' -e 's/$/,|/' | column -t -s,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# sudo awk -F':' '{ print $1}' /etc/passwd
------------------------------------------------------------------------------------------------------------------
root
bin
daemon
mail
ftp
http
nobody
dbus
systemd-coredump
systemd-network
systemd-oom
systemd-journal-remote
systemd-resolve
systemd-timesync
tss
------------------------------------------------------------------------------------------------------------------
# sudo awk -F':' '{ print $1}' /etc/passwd | tr : , | sed -e 's/^/| /' -e 's/,/,| /g' -e 's/$/,|/' | column -t -s,
------------------------------------------------------------------------------------------------------------------
| root |
| bin |
| daemon |
| mail |
| ftp |
| http |
| nobody |
| dbus |
| systemd-coredump |
| systemd-network |
| systemd-oom |
| systemd-journal-remote |
| systemd-resolve |
| systemd-timesync |
| tss |
-------------------------------------------------------------------------------------------------------------------
# sudo head -n 4 /etc/passwd
-------------------------------------------------------------------------------------------------------------------
root:x:0:0::/root:/usr/bin/zsh
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin
mail:x:8:12::/var/spool/mail:/usr/bin/nologin
-------------------------------------------------------------------------------------------------------------------
# sudo head -n 4 /etc/passwd | tr : , | sed -e 's/^/| /' -e 's/,/,| /g' -e 's/$/,|/' | column -t -s,
-------------------------------------------------------------------------------------------------------------------
| root | x | 0 | 0 | | /root | /usr/bin/zsh |
| bin | x | 1 | 1 | | / | /usr/bin/nologin |
| daemon | x | 2 | 2 | | / | /usr/bin/nologin |
| mail | x | 8 | 12 | | /var/spool/mail | /usr/bin/nologin |

指令說明

tr - Linux tr 命令用于转换或删除文件中的字符

1
2
tr [-cdst][--help][--version][第一字符集][第二字符集]  
tr [OPTION]…SET1[SET2]

範例用途 : tr : , - 把:改成,

參考 - Linux tr命令 | 菜鸟教程

sed - 利用脚本来处理文本文件

1
sed [-hnV][-e<script>][-f<script文件>][文本文件]

範例用途 :

  • sed -e 's/^/| /' - 在字串最前面加上 |
  • sed -e 's/,/,| /g' - 把每個,都變成,|
  • sed -e 's/$/,|/' - 在字串的最後加上 ,|

參考 - Linux sed命令 | 菜鸟教程

Column - 整理檔案內文字並加上行

1
column [-entx] [-c columns] [-s sep] [file ...]

範例用途 : column -t -s, - 把,去掉的同時並且格式好|之間的空格

參考 - Geeks for geeks column命令