sed one-liner для удаления любой строки, начинающейся с цифры

введите описание изображения здесь

Представьте, что я работаю с этим файлом.

Начало первой видимой строки скрыто, поэтому игнорируйте это. 43 – начало следующей строки, и эта строка будет удалена.

Следующая строка (начинающаяся с 44 и заканчивающаяся периодом) будет удалена.

Следующая строка (которая состоит только из 424) также исчезла.

Следующая строка (которая состоит из «11. Король и герой») также исчезла.

Следующая строка остается.

  • удаление строк между строками в текстовом файле с помощью awk или sed
  • bash для замены коротких имен сервера в файле с помощью fqdn
  • grep все строки, начинающиеся с определенного символа, и заканчиваются другим символом
  • любая команда, которая может форматировать html или xml из оболочки?
  • Найдите каждую строку, соответствующую шаблону, но напечатайте только строку над ней
  • найти символ и присоединиться к этой строке со следующей
  • рассчитать числа на конец и слить в одну строку
  • Как узнать содержимое файла XML с помощью Unix Sed / Awk?
  • 3 Solutions collect form web for “sed one-liner для удаления любой строки, начинающейся с цифры”

     sed -e '/^[0-9]/d' filename > filename.new 

    или изменить на месте

     sed -i -e '/^[0-9]/d' filename 

    Я использовал бы grep(1) для этого:

     grep -v '^[0-9]' filename 

    ^[0-9] соответствует любой строке, начинающейся с цифры, и -v исключает строки, которые соответствуют, вместо включения. Вы также можете использовать класс символов [:digit:] вместо [0-9] .

    Вместо -v вы можете инвертировать диапазон:

     grep '^[^0-9]' filename 

    Это будет соответствовать любой строке, которая не начинается с цифры, но она не будет соответствовать пустым строкам.

    С grep , sed и awk мое общее правило заключается в том, что для сопоставления и простого извлечения используйте grep , для перезаписи без сохранения состояния используйте sed и для изменений с сохранением состояния, используйте awk . Вот почему я предлагаю использовать grep вместо sed как вы задали в своем вопросе (и другие уже ответили на sed ).

     sed -e '/^[0-9].*$/d' oldfile > newfile 
    Interesting Posts

    Ответ сервера кластерного сервера NFS ERR 24: Auth Bogus Credentials (печать сломана)

    Запись петли не работает с alsa

    Не удается запустить Tomcat на Ubuntu

    Apache access.log получает обновления после переименования

    Не удалось войти в систему после редактирования xinitrc

    Как открыть локальный URL (веб-страницу) в командной строке

    я хочу напечатать строку, которая начинается с словесного слова, а в остальных записях печатается только одно поле

    Какая версия VBOX API поддерживает libvirt?

    Как заменить текст другим в Perl

    печатать только строки, у которых есть последняя непустая ячейка, которая начинается со слова «Failed» в CSV-файле в Linux

    systemd и несуществующие файлы .service: являются ли они универсальными?

    Некоторые пакеты отмечены как INVALID с помощью iptables

    Bash заменить символы на выходе

    X11 Consolas регулярно выглядит уродливым

    Самый быстрый способ изменить dir из / xxxxx / foo / yyyyyy в / xxxxx / bar / yyyyyy

    Linux и Unix - лучшая ОС в мире.