これはテキストファイルですDrives.txt
。
Slot Number : 0
Drive's position : DiskGroup 0
Media Error Count : 0
Other Error Count : 0
Predictive Failure Count : 0
Raw Size : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state : Online, Spun Up
Inquiry Data : WDC WUSTR6480ASS200 K95DV6X3NG2A
Foreign State : None
Media Type : Solid State Device
Drive Temperature : 27C (80.60 F)
Drive S.M.A.R.T alert : No
Slot Number : 1
Drive's position : DiskGroup 0
Media Error Count : 0
Other Error Count : 0
Predictive Failure Count : 0
Raw Size : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state : Online, Spun Up
Inquiry Data : WDC WUSTR6480ASS200 K95DV6X3NG2A
Foreign State : None
Media Type : Solid State Device
Drive Temperature : 27C (80.60 F)
Drive S.M.A.R.T alert : No
Slot Number : 2
Drive's position : DiskGroup 0
Media Error Count : 0
Other Error Count : 0
Predictive Failure Count : 0
Raw Size : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state : Online, Spun Up
Inquiry Data : WDC WUSTR6480ASS200 K95DV6X3NG2A
Foreign State : None
Media Type : Solid State Device
Drive Temperature : 27C (80.60 F)
Drive S.M.A.R.T alert : No
診断された各ドライブ間に空白があるように、12行目(12行、24行、36行など)ごとに空白行を追加したいと思います。どうすればいいですか? bashスクリプトで実装したいです。
出力は次のようになります。
Slot Number : 0
Drive's position : DiskGroup 0
Media Error Count : 0
Other Error Count : 0
Predictive Failure Count : 0
Raw Size : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state : Online, Spun Up
Inquiry Data : WDC WUSTR6480ASS200 K95DV6X3NG2A
Foreign State : None
Media Type : Solid State Device
Drive Temperature : 27C (80.60 F)
Drive S.M.A.R.T alert : No
Slot Number : 1
Drive's position : DiskGroup 0
Media Error Count : 0
Other Error Count : 0
Predictive Failure Count : 0
Raw Size : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state : Online, Spun Up
Inquiry Data : WDC WUSTR6480ASS200 K95DV6X3NG2A
Foreign State : None
Media Type : Solid State Device
Drive Temperature : 27C (80.60 F)
Drive S.M.A.R.T alert : No
Slot Number : 2
Drive's position : DiskGroup 0
Media Error Count : 0
Other Error Count : 0
Predictive Failure Count : 0
Raw Size : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state : Online, Spun Up
Inquiry Data : WDC WUSTR6480ASS200 K95DV6X3NG2A
Foreign State : None
Media Type : Solid State Device
Drive Temperature : 27C (80.60 F)
Drive S.M.A.R.T alert : No
答え1
自然なピットです。アッ
awk '{print} NR % 12 == 0 {print ""}' Drives.txt
答え2
タイプ
sed '12~12a\
' Drives.txt
>
(はい、これは2つの別々の行です。シェルは最初の行を入力した後にプロンプトを表示します。)
sed -e '12~12a\' -e '' Drives.txt
アドレス指定モードはGNU sedの拡張で、「次のコマンドをオンラインで実行」を意味します。 M~N
M
それ以降のすべての行 N
" a
''
Steeldriverが指摘したように、0~12
0行がないので、実際には12行で始まります。
答え3
どの実装でもsed
(空の)予約済みスペースを追加して、行の後に改行文字を追加できます。alert :
G
sed '/alert *:/G' Drives.txt
ファイルの末尾の空白行が気に入らない場合は、最後の行の$
場合はP
改行の前の部分を印刷してd
その行を削除してください。
sed '/alert *:/G;$P;$d' Drives.txt
答え4
awk 'NR%12 == 0 {$0=$0"\n"}1' file.txt
出力
Slot Number : 0
Drive's position : DiskGroup 0
Media Error Count : 0
Other Error Count : 0
Predictive Failure Count : 0
Raw Size : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state : Online, Spun Up
Inquiry Data : WDC WUSTR6480ASS200 K95DV6X3NG2A
Foreign State : None
Media Type : Solid State Device
Drive Temperature : 27C (80.60 F)
Drive S.M.A.R.T alert : No
Slot Number : 1
Drive's position : DiskGroup 0
Media Error Count : 0
Other Error Count : 0
Predictive Failure Count : 0
Raw Size : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state : Online, Spun Up
Inquiry Data : WDC WUSTR6480ASS200 K95DV6X3NG2A
Foreign State : None
Media Type : Solid State Device
Drive Temperature : 27C (80.60 F)
Drive S.M.A.R.T alert : No
Slot Number : 2
Drive's position : DiskGroup 0
Media Error Count : 0
Other Error Count : 0
Predictive Failure Count : 0
Raw Size : 745.211 GB [0x5d26ceb0 Sectors]
Firmware state : Online, Spun Up
Inquiry Data : WDC WUSTR6480ASS200 K95DV6X3NG2A
Foreign State : None
Media Type : Solid State Device
Drive Temperature : 27C (80.60 F)
Drive S.M.A.R.T alert : No