用bash输出中的单个空格字符分隔的单词

时间:2016-02-20 20:12:41

标签: regex linux ubuntu mono

我正在尝试使用正则表达式分隔bash输出的结果。

例如

systemd+   531  0.0  0.0 100272   232 ?        Ssl  Jan26   0:08 /lib/systemd/systemd-timesyncd
root       675  0.0  0.0  28660  1884 ?        Ss   Jan26   0:13 /lib/systemd/systemd-logind
message+   735  0.0  0.0  43712  2692 ?        Ss   Jan26   0:37 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation

在上面的输出中,我想将每个转换为结果对象。

如何使用正则表达式将结果拆分为单独的标记 我能用这个 reg ex分隔单词。但我几乎可以在Linux中看到\ t或多个空格用于分隔每一列

这个正则表达式提供了正确的结果

[\w-:]+

systemd+   531  0.0  0.0 100272   232 ?        Ssl  Jan26   0:08 /lib/systemd/systemd-timesyncd

原始匹配模式:

[\w-:]+

$匹配数组:

 (
     [0] => Array
         (
             [0] => systemd
             [1] => 531
             [2] => 0.0
             [3] => 0.0
             [4] => 100272
             [5] => 232
             [6] => Ssl
             [7] => Jan26
             [8] => 0:08
             [9] => /lib/systemd/systemd-timesyncd
         )

 )

然而,它不适用于下线

systemd+   1183  0.0  0.0  42624   256 ?        Ss   Jan26   0:00 /lib/systemd/systemd --user

$匹配数组:

 (
     [0] => Array
         (
             [0] => systemd
             [1] => 1183
             [2] => 0.0
             [3] => 0.0
             [4] => 42624
             [5] => 256
             [6] => Ss
             [7] => Jan26
             [8] => 0:00
             [9] => /lib/systemd/systemd
             [10] => --user
         )

 )

匹配9和10应该在一起。

0 个答案:

没有答案
相关问题