热在 "lsusb" 的输出中加入分隔符
hot to put a delimiter into output of "lsusb"
我有一个 "lsusb" 输出如下:
khalemi@hpx:/opt$ lsusb -d 0c2e:0200
Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
Q) 如何使用 "sed" 将输出重新格式化(使用定界符 ---),使其类似于
Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
---
Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
然后我会将此输出传递给另一个进程,如 php 脚本,并 explode/split 使用 (---) 分隔符将其传递到数组中。
请帮忙。
使用awk
:
lsusb -d 0c2e:0200 | awk 'NR>1{print "---\n" [=10=]}'
使用sed
:
lsusb -d 0c2e:0200 | sed '1!s/^/---\n/'
在这两种情况下,代码都通过在除第一行之外的每一行之前添加 ---\n
来工作。
在 php 中,您可以这样做
通过preg_split
$str = <<<EOT
Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
EOT;
$split = preg_split('~\n~', $str);
print_r($split);
和explode
,
$split = explode("\n", $str);
这将根据换行符拆分输入。
输出:
Array
(
[0] => Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
[1] => Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
)
另一种方法
使用 sed
lsusb -d 0c2e:0200|sed '$!{s/$/&\n---/g}'
结果
Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
---
Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
我有一个 "lsusb" 输出如下:
khalemi@hpx:/opt$ lsusb -d 0c2e:0200
Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
Q) 如何使用 "sed" 将输出重新格式化(使用定界符 ---),使其类似于
Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
---
Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
然后我会将此输出传递给另一个进程,如 php 脚本,并 explode/split 使用 (---) 分隔符将其传递到数组中。
请帮忙。
使用awk
:
lsusb -d 0c2e:0200 | awk 'NR>1{print "---\n" [=10=]}'
使用sed
:
lsusb -d 0c2e:0200 | sed '1!s/^/---\n/'
在这两种情况下,代码都通过在除第一行之外的每一行之前添加 ---\n
来工作。
在 php 中,您可以这样做
通过preg_split
$str = <<<EOT
Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
EOT;
$split = preg_split('~\n~', $str);
print_r($split);
和explode
,
$split = explode("\n", $str);
这将根据换行符拆分输入。
输出:
Array
(
[0] => Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
[1] => Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
)
另一种方法
使用 sed
lsusb -d 0c2e:0200|sed '$!{s/$/&\n---/g}'
结果
Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
---
Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner