Обновление
Даже с интервалом {1}
вы все равно будете сопоставлять поле, например 23
, поскольку 2
соответствует одному числу.То, что вы действительно хотите использовать - это привязки и забыть об интервалах:
awk '$2 ~ /^[0-9]$/{print}' FS="\t" file
Проблема заключается в использовании интервалов {1}
.awk
меньше версии 4 не поддерживает интервалы.gawk
с другой стороны будет, если вы добавите следующий флаг: --re-interval
Попробуйте это:
awk --re-interval '$2 ~ /[0-9]{1}/{print}' FS="\t" file
Некоторые другие примечания:
- Встроенные переменные, такие как
FS
, могут быть назначены в конце без необходимости -v
- Вы можете использовать просто
print
вместо print $0
, так как это поведение по умолчанию - Бесполезное использование
cat
.awk
может принять файл в качестве аргумента, используйте его вместо