有没有一个命令可以把如下输出转成表格形式的?

2022-04-16 15:59:14 +08:00
 kyrre
# ethtool -i <网卡名>
driver: tun
version: 1.6
firmware-version:
expansion-rom-version:
bus-info: tap
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

我想要的功能如下:

# ethtool -i <网卡名> |nbcmd
driver | version | firmware-version | ...
tun    | 1.6     |                  | ...

看了一下 column 命令太傻了,好像不支持这种行内解析。

当然,如果类似 xargs 这种方式就更好了

awesome_cmd ethtool -i <网卡名>
input 1  | driver | version | firmware-version | ...
网卡名    | tun     | 1.6     |                  | ...
2542 次点击
所在节点    程序员
14 条回复
windvans
2022-04-16 17:36:29 +08:00
自己用 python 或者 bash 写一个么
Vegetable
2022-04-16 18:00:33 +08:00
不大对吧,把无限长的 kv-list 转成无限宽的 1*N 的 table ?这也显示不下啊
huahuajun9527
2022-04-16 19:15:07 +08:00
可以研究一下 awk 命令
hxy100
2022-04-16 20:13:11 +08:00
感觉你不转换还好看一些,转换了,条目一多显示不下的话排版就乱了。
-----
非要转换,你可以把这行代码保存为 bash ,然后通过管道调用这个 bash 即可
cat|awk -F ':' '{h[NR]=$1;d[NR]=$2}END{for(i=1;i<=NR;i++){printf h[i]"|"};printf "\n";for(i=1;i<=NR;i++){printf d[i]"|"}}'|column -t -s "|" -o " | "
-----
HeyEvan
2022-04-17 00:01:11 +08:00
ethtool -i <网卡名> | column -t -o ' | '
HeyEvan
2022-04-17 00:14:28 +08:00
@HeyEvan 没注意,请忽略
kokutou
2022-04-17 00:23:51 +08:00
不如这样?:

driver : tun
version : 1.6
firmware-version :
expansion-rom-version :
bus-info : tap
supports-statistics : no
supports-test : no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags : no
kokutou
2022-04-17 00:24:23 +08:00
lululau
2022-04-17 00:58:23 +08:00
1. Install miller
2. Exec: mlr --ixtab --omd --ips : cat
HeyWeGo
2022-04-17 07:40:27 +08:00
@kokutou 这种感觉比横着看好。


请问要怎么做呢?
hxy100
2022-04-17 09:56:47 +08:00
@HeyWeGo 这种情况更简单,直接在管道符后使用 column 命令即可。
----
比如:
cat 2.txt |column -t -s ':' -o ':'
----
kyrre
2022-04-17 11:32:21 +08:00
@lululau 这个就是我想要的效果。

看了一下还是要自己撸,因为要批量处理一堆网卡的信息比对,要能够把结果集中到一个表里。
xunxuntj
2022-04-17 12:33:20 +08:00
Excel ,冒号分隔导入,形成两列 x 行的数据,复制后选择性粘贴,行列转换
kyrre
2022-04-19 08:38:28 +08:00
@xunxuntj 你这个思路在偶尔一次性操作时还是可以的,我现在想要个工具是在 linux 命令行下能够随时格式化输出的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/847352

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX