Если я правильно интерпретирую ваш ввод, это поля, которые должны попадать в диапазон [1-64]:
| 4645 58@O12 | 23489 1174@H1 23488 1174@O | 22.79 2.945 ( 0.28) 26.79 (14.41)
^ ^
_______| ______|
Насколько я могу судить, в вашем вводе нет ничего, что выопубликовал, имеет такое поведение ...
Используйте этот awk-скрипт:
/^|/{
split($3, a, "@")
split($6, b, "@")
if(a[1] >= 1 && a[1] <= 64 && b[1] >=1 && b[1] <= 64) print
}
Если я добавлю строку к вашему вводу:
| 3845 48@O16 | 21156 39@H2 21154 396@O | 13.06 2.934 ( 0.26) 27.71 (14.05)
^ ^
_______| ______|
Thisвыходы скрипта:
$ awk -f digits.awk digits.txt
| 3845 48@O16 | 21156 39@H2 21154 396@O | 13.06 2.934 ( 0.26) 27.71 (14.05)