区切り文字の間の行を抽出する

hoge.txtの内容のうち、区切り文字を「#turtle.hoge2」として、区切り文字間の行を抽出するコマンド

$ cat hoge.txt
#turtle.hoge1
0000
#turtle.hoge1
111111
#turtle.hoge2
222222
333333
444444
#turtle.hoge2
555555
#turtle.hoge3
6666666
#turtle.hoge3

$ grep -A 1000 '#turtle.hoge2' hoge.txt | grep -B 1000 '#turtle.hoge2' | grep -v '#turtle.hoge2'
222222
333333
444444


区切り間の文字を抽出して、さらに、以下を行う。

  1. 行をソート
  2. 行のセパレータ文字「=」の2フィールド目以降を取得
  3. 結果を出力
$ cat hoge2.txt
#turtle.hoge1
0000
#turtle.hoge1
111111
#turtle.hoge2
key.0001=value.0001
key.0003=value.0003
key.0002_2=value.0002_2
key.0002_1=value.0002_1
#turtle.hoge2
555555
#turtle.hoge3
6666666
#turtle.hoge3

$ grep -A 1000 '#turtle.hoge2' hoge2.txt | grep -B 1000 '#turtle.hoge2' | grep -v '#turtle.hoge2' | sort | cut -d'=' -f2-
value.0001
value.0002_1
value.0002_2
value.0003