次の種類のテキストファイルがあります。
a b c d
-- -- -- --
1 ok device issue Some Action which
has to be taken which
is split into many lines
under d.
「問題」をgrepingしようとしましたが、「d」の最初の行だけが印刷されました。私が得た結果は次のとおりです。
1 ok device issue Some Action which
しかし、私はdの完全な出力が欲しい。ファイルをcsvとして保存しようとすると、d列の2行目が新しい行として表示されます。
編集する:
問題のあるデバイスを探す変数に格納されている複数のデバイスから出力を取得します。
ベストアンサー1
これには複数行のgrepが必要です。これを行うには、PCREオプションを有効にする必要があります-P
。 grep は-z
slurp モードで Null で区切られたレコードを出力するため、tr コマンドを使用してこれらのレコードを削除します。
$ < file grep -Pzo '.*\S.*issue.*\n(?:\h+.*\n)+' | tr -d '\0'