sedコマンドで文字列を解析しようとしてエラーが発生します。
sed -e "/pd begin $(echo 3:1I:1:1|sed 0,/:/{s/:/' '/})",/pd end $(echo 3:1I:1:1|sed 0,/:/{s/:/' '/})/p /tmp/hp-raid-data-harvester.out
文字列 "3:1I:1:1" の最初の ":" を置き換える必要があります。連続している必要があり、以前は変更できません。文字列はデータベースの文字列$ 1から取得されます。
hp-raid-data ファイルは次の行にあります。
### pd begin 3 2I:1:1 ###
Smart Array P410 in Slot 0
array B
physicaldrive 2I:1:1
Port: 2I
Box: 1
Bay: 4
Status: OK
Drive Type: Data Drive
Interface Type: SATA
Size: 3 TB
Rotational Speed: 7200
Firmware Revision: CC4H
Serial Number: Z1F21GLG
Model: ATA ST3000DM001-9YN1
SATA NCQ Capable: True
SATA NCQ Enabled: True
Current Temperature (C): 33
Maximum Temperature (C): 42
PHY Count: 1
PHY Transfer Rate: 3.0Gbps
### pd end 3 2I:1:1 ###
答え1
/
コンマの前に正規表現を終了するには区切り文字が必要です。そして、sed
両方の正規表現にスペースがあるため、式全体のパラメータの周りに引用符が必要です。
sed -e "/pd begin $(echo 3:1I:1:1|sed 0,/:/{s/:/' '/})/,/pd end $(echo 3:1I:1:1|sed 0,/:/{s/:/' '/})/p" /tmp/hp-raid-data-harvester.out
^ ^