回答編集履歴

3

awkらしい解というのを追記。

2024/04/08 11:23

投稿

otn
otn

スコア85768

test CHANGED
@@ -19,6 +19,6 @@
19
19
  別解としては、`RS`を改行以外に設定して、上記記述での「塊」単位で処理するか。
20
20
  ```sh
21
21
  awk 'BEGIN{RS="\nend\nstart\n|\nend\n|start\n"}
22
- /\nID:BBB\n/{print}'
22
+ /\nID:BBB\n/'
23
23
  ```
24
- これはセパレーターがこれでいいのどうか
24
+ これは一番awkらしい書き方かと思いますが、セパレーターの記述ちょっと直感的いか。

2

微修正

2024/02/07 10:02

投稿

otn
otn

スコア85768

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  別解としては、`RS`を改行以外に設定して、上記記述での「塊」単位で処理するか。
20
20
  ```sh
21
- awk 'BEGIN{RS="end\nstart\n|end\n|start\n";ORS=""}
21
+ awk 'BEGIN{RS="\nend\nstart\n|\nend\n|start\n"}
22
22
  /\nID:BBB\n/{print}'
23
23
  ```
24
24
  これはセパレーターがこれでいいのかどうか。

1

コピペミス

2024/02/07 09:56

投稿

otn
otn

スコア85768

test CHANGED
@@ -19,6 +19,6 @@
19
19
  別解としては、`RS`を改行以外に設定して、上記記述での「塊」単位で処理するか。
20
20
  ```sh
21
21
  awk 'BEGIN{RS="end\nstart\n|end\n|start\n";ORS=""}
22
- /^ID:BBB$/{print}'
22
+ /\nID:BBB\n/{print}'
23
23
  ```
24
24
  これはセパレーターがこれでいいのかどうか。