我想创建一个包含两列的表。第一列包含键名称,第二列包含值。该值可以是通常在终端中导致多行的文本。
使用printf或column可以轻松获得以下输出:
<----- Terminal Length ------>
key1 This is the value for
key1 with a very long text.
...
Run Code Online (Sandbox Code Playgroud)
但我希望将值显示在同一列中,如下所示:
<----- Terminal Length ------>
key1 This is the value for
key1 with a very long
text.
...
Run Code Online (Sandbox Code Playgroud)
如何在同一列内换行?
实际上,util-linux 'column' 命令可以做到这一点。它用途广泛。
#!/bin/bash
cat <<- EOF | column --separator '|' \
--table \
--output-width 30 \
--table-noheadings \
--table-columns C1,C2 \
--table-wrap C2
key1|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
key2|blahhhhhhhhhhhhhhhhhhhhhhhhhhhhzzz
EOF
Run Code Online (Sandbox Code Playgroud)
这给出:
key1 Lorem ipsum dolor sit am
et, consectetur adipisci
ng elit, sed do eiusmod
tempor incididunt ut lab
ore et dolore magna aliq
ua.
key2 blahhhhhhhhhhhhhhhhhhhhh
hhhhhhhzzz
Run Code Online (Sandbox Code Playgroud)
--output-width:给出所需的大小(可以使用“tput cols”,如上所述)
--table-columns C1,C2:为要与其他选项一起使用的列命名
--table-wrap C2:换行第 2 列
专栏版本:
# column -V
column from util-linux 2.33.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
730 次 |
| 最近记录: |