awk文字列検索してそれ以降を抜き出す
ある文字列を検索して、それ以降に存在する(と)の間の行を表示するawkスクリプトです。
inputファイル
$ cat input.txt
aaaaa
bbbbb
cccc
dddd
ffff
start_ABCD_ssss
eeeee
ggggg
hhhhh
(
Hit 1
Hit 2
Hit 3
Hit 4
Hit 5
)
6
7
8
9
0
end
awkコマンド
$ cat awk.sh
awk -v search_string="start_[0-9a-zA-Z]{0,5}.+" '
{
if (match($0, search_string)) {
start_flag = 1
} else if (start_flag) {
if (index($0, "(") > 0) {
start_flag2 = 1
} else if (start_flag2) {
if (index($0, ")") > 0) {
exit
} else {
print $0
}
}
}
}
' input.txt
実行結果
$ ./awk.sh
Hit 1
Hit 2
Hit 3
Hit 4
Hit 5
以上