frz
4番目の列がORであるいくつかのデータがあります-
。frz
次の行の4番目の列だけが4番目の列であるすべての行を見つけて、その2行を印刷したいと思います-
。
入力例:
2018-04-09T14:15:23.366Z 7 multi - uuid1 uuid2 uuid3 -
2018-04-09T14:15:23.978Z 8 multi frz uuid1 uuid3 - -
2018-04-09T14:29:35.826Z 8 multi frz uuid1 uuid3 uuid2 -
2018-04-09T17:19:01.901Z 8 multi frz uuid1 uuid3 uuid2 -
2018-06-03T22:12:38.688Z 8 multi - uuid1 uuid3 uuid2 -
2018-06-28T00:35:54.338Z 9 multi - uuid1 uuid2 - -
2018-06-28T00:47:51.679Z 9 multi - uuid1 uuid2 uuid3 -
2018-06-28T00:47:51.720Z 10 multi - uuid1 uuid3 - -
2018-06-28T00:47:58.863Z 10 multi - uuid1 uuid3 uuid2 -
2018-06-28T16:29:01.624Z 10 multi frz uuid1 uuid3 uuid2 -
2018-06-28T17:29:01.624Z 10 multi - uuid1 uuid3 uuid2 -
予想出力:
2018-04-09T17:19:01.901Z 8 multi frz uuid1 uuid3 uuid2 -
2018-06-03T22:12:38.688Z 8 multi - uuid1 uuid3 uuid2 -
2018-06-28T16:29:01.624Z 10 multi frz uuid1 uuid3 uuid2 -
2018-06-28T17:29:01.624Z 10 multi - uuid1 uuid3 uuid2 -
一致後に行を印刷するいくつかのコマンドが見つかりましたawk
が、これらの2行を一致させ、両方を印刷する方法がわかりません。
私が現在持っているもの:
$ awk 'f{print;f=0} $4=="frz"{f=1}' input
2018-04-09T14:29:35.826Z 8 multi frz uuid1 uuid3 uuid2 -
2018-04-09T17:19:01.901Z 8 multi frz uuid1 uuid3 uuid2 -
2018-06-03T22:12:38.688Z 8 multi - uuid1 uuid3 uuid2 -
2018-06-28T17:29:01.624Z 10 multi - uuid1 uuid3 uuid2 -
ベストアンサー1
どうですか?
awk '$4=="-" && prev4=="frz" {print prevline; print} {prev4 = $4; prevline=$0}' file