Он отлично работает в grep, хотя awk - это инструмент для разделения полей.
С grep:
grep -E '^10[[:blank:]]+([^[:blank:]]+[[:blank:]]+){3}(0|15|30|45)[[:blank:]]' file.txt
] Соответствие 10 в начале, ([^[:blank:]]+[[:blank:]]+){3} соответствует следующим трем полям, а затем соответствует 5-му полюсу для желаемых Если вы используете PCRE (-P), вы можете заменить [:blank:] на \s, хорошо смотрится на глазах:
grep -P '^10\s+([^\s]+\s+){3}(0|15|30|45)\s' file.txt
Пример:
$ cat file.txt
2 METEOROLOGICAL DATA VERSION /
8 PR TD HR ZW ZT WD WS RI # / TYPES OF MOD/TYPE/ACC
3979316.8350 1050313.7180 4857065.7030 592.1910 PR SENSOR POS XYZ/H
END OF HEADER
10 1 1 0 0 15 927.9 4.3 99.1
10 1 1 0 1 15 927.9 4.3 99.1
10 1 1 0 2 15 927.9 4.3 99.1
10 1 1 0 15 15 927.9 4.2 99.1
10 1 1 0 16 15 927.9 4.2 99.0
10 1 1 0 30 15 927.7 4.1 99.1
10 1 1 0 31 15 927.7 4.1 99.1
10 1 1 0 45 15 927.5 4.1 99.1
10 1 1 0 46 15 927.5 4.0 99.1
10 1 1 1 0 15 927.4 4.1 99.1
10 1 1 1 1 15 927.4 4.1 99.1
$ grep -E '^10[[:blank:]]+([^[:blank:]]+[[:blank:]]+){3}(0|15|30|45)[[:blank:]]' file.txt
10 1 1 0 0 15 927.9 4.3 99.1
10 1 1 0 15 15 927.9 4.2 99.1
10 1 1 0 30 15 927.7 4.1 99.1
10 1 1 0 45 15 927.5 4.1 99.1
10 1 1 1 0 15 927.4 4.1 99.1
$ grep -P '^10\s+([^\s]+\s+){3}(0|15|30|45)\s' file.txt
10 1 1 0 0 15 927.9 4.3 99.1
10 1 1 0 15 15 927.9 4.2 99.1
10 1 1 0 30 15 927.7 4.1 99.1
10 1 1 0 45 15 927.5 4.1 99.1
10 1 1 1 0 15 927.4 4.1 99.1