Почему этот sed не является regex соответствием?

Если Ваш вопрос о доступе к истории команд, то попробуйте эту хорошо названную команду

history 

Можно также попробовать Ctrl + r и начать вводить команду, Вы пытаетесь помнить, что Вы недавно ввели.

(reverse-i-search)`cd ': cd mydir/data/

Поразите ESC для выбора команды или выхода. Это работает на меня на SuSE, по крайней мере; не уверенный в других дистрибутивах.

3
27.04.2011, 05:06
2 ответа

1 в числе 10 соответствия [^049] таким образом, это удалено.

4
27.01.2020, 21:17
  • 1
    Возгласы. Это было глупо из меня спросить здесь.:( Спасибо между прочим. –  Dharmit 27.04.2011, 05:09
  • 2
    Незначительная подсказка: Заключение в скобки Вашего regex с ^ и $ полезно, чтобы гарантировать, что Вы всегда смотрите на целую строку. –  l0b0 27.04.2011, 12:48

Если Вы действительно хотите показать, что строки, содержащие '0', '4', или '9', вот то, как:

seq 10 | sed -n '/[049]/p'

-n сообщает sed не распечатать любые строки. p команда сообщает sed распечатать строки, соответствующие /regex/

С другой стороны, можно всегда использовать grep :-)

seq 10 | grep -E "[049]"
1
27.01.2020, 21:17
  • 1
    Это допустимо, но точный подход, который искал OP, был, вероятно: seq 10 | sed '/[049]/!d' Это удаляет любые строки, которые не соответствуют [049] вместо того, чтобы удалять любые строки, которые соответствуют "не 049", иначе [^049]. –  Wildcard 19.11.2015, 02:20

Теги

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