регулярное выражение grep grep в команде sed

Я пытаюсь создать скрипт, который найдет / заменит экземпляры соответствия строк:

vc/integer 

Файл / etc / securetty содержит следующие строки:

 vc/1 vc/2 vc/3 vc/4 vc/5 vc/6 vc/7 vc/8 vc/9 vc/10 vc/11 grep -E 'vc/(\d{0,4}\D)*' /etc/securetty | while read line; do sed -ie "s=$line==g" /etc/securetty; done 

Как и ожидалось, вышеупомянутая команда удаляет все упомянутые строки, но не выделяет вторую цифру, 0 и 1, которые являются частью двух последних строк, vc / 1 0 vc / 1 1 . Я остался с файлом, содержащим

 0 1 

Как изменить команду для удаления одно и двухзначных совпадений?

One Solution collect form web for “регулярное выражение grep grep в команде sed”

Почему бы вам просто не сделать это просто?

 sed -i -e 's|vc/[0-9]\{1,\}||g' /etc/security 

Объяснение:

regex [0-9]\{1,\} => 1 или более совпадений предыдущего атома, которое в вашем случае оказывается [0-9] . Обратите внимание, что \d+ хотя и эквивалентно тому, что я дал [0-9]\{1,\} , не соответствует требованиям POSIX. В этом же ключе заметим, что [0-9]\{0,\} эквивалентно \d* .

  • Чтобы посчитать количество совпадений в мега-строке быстро
  • Извлечение частей имени файла csv в столбцах
  • Понимание выражения sed
  • Как я могу сопоставить и заменить этот многострочный шаблон в сценарии bash?
  • Запись команды команды в файл без использования перенаправления
  • Может ли строка «abcedf» соответствовать строке «bafcde» в одной строке?
  • команда sed внутри ожидать скрипт send command
  • Как добавить строку в файл .txt во всех строках, исключая несколько символов с помощью sed или awk
  • sed + как удалить символы / с, которые начинаются или заканчиваются на каждом номере
  • чувствительность к регистру; те же целевые идентификаторы
  • Может кто-нибудь уточнить этот сценарий Bash
  • Linux и Unix - лучшая ОС в мире.