В отличие от grep
Я не могу определить размер/диапазон символьного символьного класса в `awk. Любая подсказка в правильном направлении ценится.диапазон символов в awk версии 3.1.7
cat input
1abc
12abc
123abc
1234abc
12345abc
В grep
я могу определить размер/длина значного полукокса класса
grep -P '^\d{3,4}' input #or grep -P '^[[:digit:]]{3,4}' input
123abc
1234abc
12345abc
grep -P '^\d{4,}' input #or grep -P '^[[:digit:]]{4,}' input
1234abc
12345abc
Теперь я хочу сделать это с AWK, но то же самое регулярное выражение не работает.
например, следующая команда не дает никакого выхода.
awk '/^[[:digit:]]{3,4}/' input
awk '/^([[:digit:]]){3,4}/' input
Я ожидал, что выше команда печати
123abc
1234abc
12345abc
Примечание 1: В настоящее время я использую, чтобы определить диапазон, но это не сладкий для большого диапазона.
awk '/^[0-9][0-9]?[0-9]?/' input
Примечание 2:
awk --version |head -1
GNU Awk 3.1.7
Не удается воспроизвести. GNU Awk 4.1.4 производит именно ваш желаемый результат. – infotoni91
В RHEL 5 и GNU awk 3.1.5 вы должны использовать опцию '--posix'. – Jdamian
@Jdamian, спасибо, я царапал себе голову из последних нескольких часов. , –