regexp

подскажите
задачка отсеять из файла цифровые строки длиной 10 символов начинающиеся на ...
делаю grep -vx '848[[:digit:]]\{7\}' - работает

но как сделать перечисление начинаний? т.е. чтоб отсеивало не только начинающееся на 848 но и например на 636,123,443 и т.д ?\
848|636|123|443 не срабатывает
grep -vx '848[[:digit:]]\{7\}\|646[[:digit:]]\{7\}'
Ошибки в тексте-неповторимый стиль автора©
grayich
848|636|123|443 не срабатывает
egrep -v '848|636|123|443' /file
Ошибки не исчезают с опытом - они просто умнеют
vasek, невариант

indeviral, слишком длинно получается, реальных значений то не 4, чистого перечисления никак?
оно ещё и не работает
grayich
слишком длинно получается,
задача просто не совсем для grep
awk 'length == 10 && /^[0-9]+$/ && /^848|^222|^333/'
Ошибки в тексте-неповторимый стиль автора©
grayich
невариант
просто показал как можно использовать перечисление - и это понимает egrep ......... остальное (в начале или равное 10 символам - не смотрел)

PS - и да, соглашусь с
indeviral
задача просто не совсем для grep
Ошибки не исчезают с опытом - они просто умнеют
indeviral
awk 'length == 10 && /^[0-9]+$/ && /^848|^222|^333/'
нужно обратное, НЕ выводить искомое
awk 'NF != (/^[0-9]+$/ && /^848|^222|^646/ && length == 10)'
Ошибки в тексте-неповторимый стиль автора©
indeviral
awk 'NF != (/^[0-9]+$/ && /^848|^222|^646/ && length == 10)'
Только сейчас дошло, что нужно отсеять полностью цифровые строки …. почему то в голову вбилось, что нужно отсеять строки длиной 10 символов и начинающиеся, например, на 222 и 333, (то есть могут быть как цифровые, так и текстовые символы), а потому использовал конструкцию типа
 awk 'length != 10 || ! /^222|^333/'
А оказывается, что строки длиной N символов полностью цифровые, в связи с чем стало очень интересно, что же это за файлы такие и где они используются.
grayich, если не секрет, просвяти любознательного.

PS - редко использую awk, но уже в который раз убеждаюсь (часто приводил конструкции с awk red), в справедливости высказывания
awk может все, что и sed … и немного больше ...
Ошибки не исчезают с опытом - они просто умнеют
vasek
если не секрет, просвяти любознательного.
файлы паролей к aircrack-ng, тусую туда сюда ) в данном случае нужно было телефонные номера вырезать из базового файла.
собственно задачка решается простым скриптом на питоне/перле и т.п. но стало интересно, есть ли подобный единый регексп , оказалось нет
похоже awk действительно идеальна для таких задач
 
Зарегистрироваться или войдите чтобы оставить сообщение.