我有一个"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脚本,并使用(--)分隔符将其炸开/拆分到数组中。
请帮帮忙。
发布于 2015-02-10 05:00:41
在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
)发布于 2015-02-10 04:46:11
使用awk
lsusb -d 0c2e:0200 | awk 'NR>1{print "---\n" $0}'使用sed
lsusb -d 0c2e:0200 | sed '1!s/^/---\n/'在这两种情况下,代码的工作方式是在除第一行之外的每一行之前添加---\n。
发布于 2015-02-10 06:03:42
另一种方法
使用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 Scannerhttps://stackoverflow.com/questions/28424267
复制相似问题