Как использовать регулярное выражение для сопоставления с шаблоном, в конце которого нет определенной строки

Как следует из комментариев, проблема, скорее всего, заключается в пробелах или возвратах каретки. Любой из следующих способов должен помочь:

$ (sort -n A B) | sed -E 's/[^[:alnum:]]+$//' | uniq -d
$ (sort -n A B) | tr -d '\r ' | uniq -d

Некоторые версии GNU sed используют -r для получения расширенных регулярных выражений. tr, конечно, проще, но и более жестоко, поскольку удаляет символы независимо от того, стоят они в конце строки или нет.

1
30.07.2016, 02:42
1 ответ

Если у вас есть расширения perl, вы можете использовать отрицательный просмотр вперед.

grep -P '^.{0,2}$|^.*(?!bak)...$'

Для сопоставления строки, не заканчивающейся на bak

0
27.01.2020, 23:11

Теги

Похожие вопросы