awkでn回目にmutchした行のみを対象に処理を行う
Pocket

awkで、n回目に条件にマッチした行のみに処理を行わせたいことがあったので、備忘として残しておく。
ちなみに、1回目ならこれでOK。

cat test1.txt | awk '/abc/{print $1;exit}'
blacknon@BS-PUB-UBUNTU-01:~$ cat test1.txt
1 abc
2 bbb
3 ccc
4 ddd
5 eee
6 fff
7 ggg
8 abc
9 bbb
blacknon@BS-PUB-UBUNTU-01:~$ cat test1.txt | awk '/abc/{print $1;exit}'
1
Sponsored Links

n回目なら、このように何回目のデ-タかを指定してやればいい。

cat test1.txt | awk '/abc/{i++}i==2{print $1;exit}'
blacknon@BS-PUB-UBUNTU-01:~$ cat test1.txt
1 abc
2 bbb
3 ccc
4 ddd
5 eee
6 fff
7 ggg
8 abc
9 bbb
blacknon@BS-PUB-UBUNTU-01:~$ cat test1.txt | awk '/abc/{i++}i==2{print $1;exit}'
8

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*