awkメモ

awkで改行で区切る場合

マークダウンのセクションを取り出したい

#### 手順
1. aaa
2. bbb
3. ccc

#### 手順
1. ddd
2. eee

こんなテキストファイルがあったとして。(md.txtとする)

各セクション(####)ごとに処理をしたい場合

単にawkで抜き出す場合

$ awk 'BEGIN{RS=""} {print $0}' md.txt

複数のファイルから見出し、セクションなどを取得したい(これをどうしてもやりたいことがあった)

head.txt

## title1
## title2

md.txt

#### 手順
1. aaa
2. bbb
3. ccc

#### 手順
1. ddd
2. eee
$ for i in {1..2}; do arg1=`echo "NR == $i" '{print $0}'`; arg2=`echo "BEGIN{RS=\"\"} NR == $i" '{print $0}'`; awk $arg1 head.txt; awk $arg2 md.txt; done

出力結果

## title1
#### 手順
1. aaa
2. bbb
3. ccc
## title2
#### 手順
1. ddd
2. eee

リンクなど

ie.u-ryukyu.ac.jp

t-min.hatenablog.com

littleengineer.jp