如何在仍然保持列对齐的同时从shell中的表输出中删除不必要的空格?

伊利亚·林恩(Elijah Lynn)

下面的命令输出一个以空格分隔的文本表,是否有一个工具可以在此处消除不必要的间距,同时保持列对齐?

$ sudo ss -ltpn
State      Recv-Q Send-Q                                                                       Local Address:Port                                                                                      Peer Address:Port    
LISTEN     0      32                                                                            10.218.108.1:53                                                                                                   *:*       
users:(("dnsmasq",pid=10242,fd=9))
LISTEN     0      128                                                                                      *:22                                                                                                   *:*       
users:(("sshd",pid=1111,fd=3))
LISTEN     0      32                                                                  fd42:9324:ab98:50fb::1:53                                                                                                  :::*       
users:(("dnsmasq",pid=10242,fd=13))
LISTEN     0      32                                                        fe80::c024:c5ff:fe68:999e%lxdbr0:53                                                                                                  :::*       
users:(("dnsmasq",pid=10242,fd=11))
LISTEN     0      128                                                                                     :::22                                                                                                  :::*       
芒登

事实证明,ss如果您只是通过管道输出或将其重定向到文件则可以为您完成此操作。例如,在没有管道的系统上,我得到以下信息:

$ sudo ss -ltpn 
State               Recv-Q              Send-Q                           Local Address:Port                            Peer Address:Port             Process                                                                
LISTEN              0                   128                                    0.0.0.0:53939                                0.0.0.0:*                 users:(("spotify",pid=4152748,fd=115))                                
LISTEN              0                   10                                     0.0.0.0:57621                                0.0.0.0:*                 users:(("spotify",pid=4152748,fd=96))                                 
LISTEN              0                   128                                    0.0.0.0:22                                   0.0.0.0:*                 users:(("sshd",pid=822,fd=3))                                         
LISTEN              0                   128                                  127.0.0.1:10391                                0.0.0.0:*                 users:(("Enpass",pid=2193055,fd=38))                                  
LISTEN              0                   5                                    127.0.0.1:631                                  0.0.0.0:*                 users:(("cupsd",pid=818,fd=8))                                        
LISTEN              0                   5                                    127.0.0.1:9292                                 0.0.0.0:*                 users:(("emacs",pid=178419,fd=13))                                    
LISTEN              0                   4096                                   0.0.0.0:111                                  0.0.0.0:*                 users:(("rpcbind",pid=314,fd=4),("systemd",pid=1,fd=106))             
LISTEN              0                   5                                    127.0.0.1:34512                                0.0.0.0:*                 users:(("purevpnd",pid=839,fd=6))                                     
LISTEN              0                   128                                       [::]:22                                      [::]:*                 users:(("sshd",pid=822,fd=4))                                         
LISTEN              0                   5                                        [::1]:631                                     [::]:*                 users:(("cupsd",pid=818,fd=7))                                        
LISTEN              0                   4096                                      [::]:111                                     [::]:*                 users:(("rpcbind",pid=314,fd=6),("systemd",pid=1,fd=128))             

cat但是,如果我只是通过管道传输到,则会得到:

$ sudo ss -ltpn | cat
State  Recv-Q Send-Q Local Address:Port  Peer Address:PortProcess                                                   
LISTEN 0      128          0.0.0.0:53939      0.0.0.0:*    users:(("spotify",pid=4152748,fd=115))                   
LISTEN 0      10           0.0.0.0:57621      0.0.0.0:*    users:(("spotify",pid=4152748,fd=96))                    
LISTEN 0      128          0.0.0.0:22         0.0.0.0:*    users:(("sshd",pid=822,fd=3))                            
LISTEN 0      128        127.0.0.1:10391      0.0.0.0:*    users:(("Enpass",pid=2193055,fd=38))                     
LISTEN 0      5          127.0.0.1:631        0.0.0.0:*    users:(("cupsd",pid=818,fd=8))                           
LISTEN 0      5          127.0.0.1:9292       0.0.0.0:*    users:(("emacs",pid=178419,fd=13))                       
LISTEN 0      4096         0.0.0.0:111        0.0.0.0:*    users:(("rpcbind",pid=314,fd=4),("systemd",pid=1,fd=106))
LISTEN 0      5          127.0.0.1:34512      0.0.0.0:*    users:(("purevpnd",pid=839,fd=6))                        
LISTEN 0      128             [::]:22            [::]:*    users:(("sshd",pid=822,fd=4))                            
LISTEN 0      5              [::1]:631           [::]:*    users:(("cupsd",pid=818,fd=7))                           
LISTEN 0      4096            [::]:111           [::]:*    users:(("rpcbind",pid=314,fd=6),("systemd",pid=1,fd=128))

如果我只是重定向到文件,也会得到相同的输出:sudo ss -ltpn > file


有关更一般的解决方案,可以使用column例如,给定此输入文件:

$ cat file
State          Recv-Q         Send-Q                   Local Address:Port                    Peer Address:Port         Process                                                            
LISTEN         0              128                            0.0.0.0:53939                        0.0.0.0:*             users:(("spotify",pid=4152748,fd=115))                            
LISTEN         0              10                             0.0.0.0:57621                        0.0.0.0:*             users:(("spotify",pid=4152748,fd=96))                             
LISTEN         0              128                            0.0.0.0:22                           0.0.0.0:*             users:(("sshd",pid=822,fd=3))                                     
LISTEN         0              128                          127.0.0.1:10391                        0.0.0.0:*             users:(("Enpass",pid=2193055,fd=38))                              
LISTEN         0              5                            127.0.0.1:631                          0.0.0.0:*             users:(("cupsd",pid=818,fd=8))                                    
LISTEN         0              5                            127.0.0.1:9292                         0.0.0.0:*             users:(("emacs",pid=178419,fd=13))                                
LISTEN         0              4096                           0.0.0.0:111                          0.0.0.0:*             users:(("rpcbind",pid=314,fd=4),("systemd",pid=1,fd=106))         
LISTEN         0              5                            127.0.0.1:34512                        0.0.0.0:*             users:(("purevpnd",pid=839,fd=6))                                 
LISTEN         0              128                               [::]:22                              [::]:*             users:(("sshd",pid=822,fd=4))                                     
LISTEN         0              5                                [::1]:631                             [::]:*             users:(("cupsd",pid=818,fd=7))                                    
LISTEN         0              4096                              [::]:111                             [::]:*             users:(("rpcbind",pid=314,fd=6),("systemd",pid=1,fd=128))         

我可以通过它column -t来漂亮地打印它:

$ column -t -N"State,Recv-Q,Send-Q,Local Address:Port,Peer Address:Port,Process" <(tail -n +2 file)
State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
LISTEN  0       128     0.0.0.0:53939       0.0.0.0:*          users:(("spotify",pid=4152748,fd=115))
LISTEN  0       10      0.0.0.0:57621       0.0.0.0:*          users:(("spotify",pid=4152748,fd=96))
LISTEN  0       128     0.0.0.0:22          0.0.0.0:*          users:(("sshd",pid=822,fd=3))
LISTEN  0       128     127.0.0.1:10391     0.0.0.0:*          users:(("Enpass",pid=2193055,fd=38))
LISTEN  0       5       127.0.0.1:631       0.0.0.0:*          users:(("cupsd",pid=818,fd=8))
LISTEN  0       5       127.0.0.1:9292      0.0.0.0:*          users:(("emacs",pid=178419,fd=13))
LISTEN  0       4096    0.0.0.0:111         0.0.0.0:*          users:(("rpcbind",pid=314,fd=4),("systemd",pid=1,fd=106))
LISTEN  0       5       127.0.0.1:34512     0.0.0.0:*          users:(("purevpnd",pid=839,fd=6))
LISTEN  0       128     [::]:22             [::]:*             users:(("sshd",pid=822,fd=4))
LISTEN  0       5       [::1]:631           [::]:*             users:(("cupsd",pid=818,fd=7))
LISTEN  0       4096    [::]:111            [::]:*             users:(("rpcbind",pid=314,fd=6),("systemd",pid=1,fd=128))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Cardview中删除不必要的顶部填充?

来自分类Dev

如何在SQL中删除不必要的字符

来自分类Dev

从Jinja渲染模板中删除不必要的空格

来自分类Dev

PyQt5删除Qlabel中不必要的空格

来自分类Dev

删除 CSV 中不必要的数据/空格

来自分类Dev

从 g++ 输出中删除不必要的汇编语句

来自分类Dev

如何从字符串中删除不必要的空格,因此HTML中没有多余的空格

来自分类Dev

删除“不必要的”空格

来自分类Dev

如何从命令行输出中删除不必要的文本?

来自分类Dev

如何优雅地在numpy中删除不必要的元素?

来自分类Dev

如何删除此文件中不必要的部分?

来自分类Dev

如何在Yii2中删除不必要的日志记录?

来自分类Dev

如何在Visual Studio的“错误列表”面板中删除不必要的Less错误

来自分类Dev

从图像中删除不必要的元素

来自分类Dev

在ElasticSearch中删除不必要的字段

来自分类Dev

如何在sympy中禁用不必要的括号?

来自分类Dev

如何在Django表单中设置不必要的字段?

来自分类Dev

如何使用Linux或PHP命令有效地从XML文件中删除不必要的空格?

来自分类Dev

C程序从字符串中删除所有不必要的空格

来自分类Dev

从CSS中的表格行中删除不必要的填充

来自分类Dev

从Jmeter中的变量中删除不必要的符号

来自分类Dev

使用C#从Excel工作表中删除不必要的“ TABLE_NAME”

来自分类Dev

在cobol程序中得到不必要的输出

来自分类Dev

Java循环的输出中不必要的重复

来自分类Dev

如何从R数据框中的列名中删除不必要的单引号(')?

来自分类Dev

如何使用 XSLT 从 XML 中的元素中删除不必要的属性?

来自分类Dev

在IntelliJ中删除不必要的@ SuppressWarnings / noinspection

来自分类Dev

从系统中删除所有不必要的字体

来自分类Dev

从多维列表python中删除不必要的图层

Related 相关文章

  1. 1

    如何在Cardview中删除不必要的顶部填充?

  2. 2

    如何在SQL中删除不必要的字符

  3. 3

    从Jinja渲染模板中删除不必要的空格

  4. 4

    PyQt5删除Qlabel中不必要的空格

  5. 5

    删除 CSV 中不必要的数据/空格

  6. 6

    从 g++ 输出中删除不必要的汇编语句

  7. 7

    如何从字符串中删除不必要的空格,因此HTML中没有多余的空格

  8. 8

    删除“不必要的”空格

  9. 9

    如何从命令行输出中删除不必要的文本?

  10. 10

    如何优雅地在numpy中删除不必要的元素?

  11. 11

    如何删除此文件中不必要的部分?

  12. 12

    如何在Yii2中删除不必要的日志记录?

  13. 13

    如何在Visual Studio的“错误列表”面板中删除不必要的Less错误

  14. 14

    从图像中删除不必要的元素

  15. 15

    在ElasticSearch中删除不必要的字段

  16. 16

    如何在sympy中禁用不必要的括号?

  17. 17

    如何在Django表单中设置不必要的字段?

  18. 18

    如何使用Linux或PHP命令有效地从XML文件中删除不必要的空格?

  19. 19

    C程序从字符串中删除所有不必要的空格

  20. 20

    从CSS中的表格行中删除不必要的填充

  21. 21

    从Jmeter中的变量中删除不必要的符号

  22. 22

    使用C#从Excel工作表中删除不必要的“ TABLE_NAME”

  23. 23

    在cobol程序中得到不必要的输出

  24. 24

    Java循环的输出中不必要的重复

  25. 25

    如何从R数据框中的列名中删除不必要的单引号(')?

  26. 26

    如何使用 XSLT 从 XML 中的元素中删除不必要的属性?

  27. 27

    在IntelliJ中删除不必要的@ SuppressWarnings / noinspection

  28. 28

    从系统中删除所有不必要的字体

  29. 29

    从多维列表python中删除不必要的图层

热门标签

归档