したがって、ファイルを開いcat
てgrep
から一致する行を取得するために使用するのは、現在扱っている特定のログセットを操作しているときだけです。行をパターンに一致させる方法が必要ですが、一致後の行の部分のみを返す必要があります。試合の前後の部分は一貫して変化します。sed
またはを使用して遊んでawk
いますが、一致する前に部分を削除するか、一致した後に部分を返すために行をフィルタリングする方法を見つけることができませんでした。これは、フィルタリングする必要がある行の例です。
2011-11-07T05:37:43-08:00 <0.4> isi-udb5-ash4-1(id1) /boot/kernel.amd64/kernel: [gmp_info.c:1758](pid 40370="kt: gmp-drive-updat")(tid=100872) new group: <15,1773>: { 1:0-25,27-34,37-38, 2:0-33,35-36, 3:0-35, 4:0-9,11-14,16-32,34-38, 5:0-35, 6:0-15,17-36, 7:0-16,18-36, 8:0-14,16-32,34-36, 9:0-10,12-36, 10-11:0-35, 12:0-5,7-30,32-35, 13-19:0-35, 20:0,2-35, down: 8:15, soft_failed: 1:27, 8:15, stalled: 12:6,31, 20:1 }
私が必要とする部分は「停止」後のすべてです。
この背景には、何かがストールする頻度を見つけることができるという背景があります。
cat messages | grep stalled | wc -l
私がする必要があるのは、特定のノードが何回ストールしたかを調べることです(「ストール」後の各コロンの前の部分で示されます。失速していないので、私は助けにはなりません。
すべての意図と目的のために、これは標準のGNUコアutilsを備えたfreebsdシステムですが、支援するために追加のものをインストールすることはできません。
sed
解決策を取り、空白を特別に扱わないでください。