0

grepこのファイルに必要な行の方法がわかりません。

8.txt  07:34:12 -> CONTENT START
8.txt  07:34:42 <-CONTENT END
8.txt  07:35:08 -> CONTENT START
8.txt  07:36:33 <-CONTENT END
8.txt  07:57:51 -> CONTENT START
8.txt  07:57:52 -> CONTENT START
8.txt  07:58:25 <-CONTENT END
8.txt  07:58:36 -> CONTENT START
8.txt  07:59:24 <-CONTENT END
8.txt  08:20:23 -> CONTENT START
8.txt  08:21:22 <-CONTENT END
8.txt  08:22:44 -> CONTENT START
8.txt  07:34:12 -> CONTENT START
8.txt  08:23:07 <-CONTENT END
8.txt  08:26:35 -> CONTENT START
8.txt  08:27:24 <-CONTENT END
8.txt  08:29:53 -> CONTENT START
8.txt  08:30:28 <-CONTENT END
8.txt  08:30:59 -> CONTENT START
8.txt  08:31:21 <-CONTENT END
8.txt  08:48:28 -> CONTENT START
8.txt  08:48:56 <-CONTENT END
8.txt  09:13:10 -> CONTENT START
8.txt  09:13:40 <-CONTENT END
8.txt  09:13:52 -> CONTENT START
8.txt  09:14:44 <-CONTENT END
8.txt  09:19:50 -> CONTENT START
8.txt  09:20:28 <-CONTENT END
8.txt  09:27:04 -> CONTENT START
8.txt  09:27:40 <-CONTENT END

CONTENT START連続した行で発生する場合は、それらを表示します。

期待される出力:

8.txt  07:57:51 -> CONTENT START
8.txt  07:57:52 -> CONTENT START
8.txt  08:22:44 -> CONTENT START
8.txt  07:34:12 -> CONTENT START

これはどのように行うことができますか?

4

2 に答える 2

4

grepこれは、これに使用するタスクではありませんuniq

$ uniq -D -f4 file
8.txt  07:57:51 -> CONTENT START
8.txt  07:57:52 -> CONTENT START
8.txt  08:22:44 -> CONTENT START
8.txt  07:34:12 -> CONTENT START

このオプション-Dは、重複した行を表示するためのものであり-f4、最初の4つのフィールドをスキップします。

于 2013-01-05T18:02:02.767 に答える
0

CONTENT STARTが3行連続で表示される場合はどうすればよいかわからないため、これが希望する場合とそうでない場合があります。

awk -v s="CONTENT START" '$0~s && p~s{print p ORS $0} {p=$0}' file
于 2013-01-05T18:05:35.067 に答える