私はしばしば次のようなテキストメッセージを投稿します。
pose:
-
position:
x: 0.0
y: 0.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
-
position:
x: 0.350104982508
y: 0.729534356813
z: -3.10228873344e-06
orientation:
x: -9.84128404362e-07
y: -1.996909502e-06
z: -0.447019362477
w: 0.894524281149
-
position:
x: 0.455011
y: -1.59228
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
私はこれをgrepや他の同様のツールにパイプして、「pose:」の後の12行目で始まり、「pose:」の次の20行目で終わる領域を表示したいと思います。 grepのデフォルトコマンドを使用すると、「pose:」の前後にn行だけを表示できます。私の場合は、次のサブメッセージを表示したいと思います。
position:
x: 0.350104982508
y: 0.729534356813
z: -3.10228873344e-06
orientation:
x: -9.84128404362e-07
y: -1.996909502e-06
z: -0.447019362477
w: 0.894524281149
これを行うコマンドラインツールはありますか?
ベストアンサー1
awk '/^pose:/{s=NR+11} (NR>s && NR<s+10){print $0}'
行がpose:
、で始まる場合s
に設定しますNR+11
。行NR
より大きいs
か小さい場合はs+10
印刷されます。