[英]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
問)如何使用“sed”重新格式化輸出(使用分隔符---)
Bus 002 Device 004: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
---
Bus 002 Device 006: ID 0c2e:0200 Metrologic Instruments Metrologic Scanner
然后我將這個輸出傳遞給另一個像php腳本的進程,並使用(---)分隔符將其分解為數組。
請幫忙。
使用awk
:
lsusb -d 0c2e:0200 | awk 'NR>1{print "---\n" $0}'
使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.