Почему sed не удаляет мои пустые строки?

Почему эта команда sed не удаляет пустые строки?

sed -e 's/\r//g' -e '/^{$/d' -e '/^}$/d' -e ':begin;$!N;/^state-text: {[[:space:]]\n/s/\n//;tbegin;P;D' -e "s/'/''/g" -e '/^$/d' <<< $myvar 

Эта команда работает отлично, за исключением последней части -e '/ ^ $ / d' для удаления пустых строк, которые вообще ничего не делают. Вот пример моего содержания:

 begin dump Ctrl_ID:100 

Это тот же контент, что и у cat -A

 begin dump$ $ Ctrl_ID:100$ 

Рассмотрение пустой строки с помощью редактора Hex показывает, что все, что она содержит, – это один единственный символ с шестнадцатеричным значением

 0A 

Это точно такой же код в конце каждой строки.

Я не понимаю, что здесь происходит.

^$ должно совпадать, нет?

One Solution collect form web for “Почему sed не удаляет мои пустые строки?”

Попробуйте (удаление пустой строки теперь в первой позиции):

 sed -e '/^$/d' -e 's/\r//g' -e '/^{$/d' -e '/^}$/d' -e ':begin;$!N;/^state-text: {[[:space:]]\n/s/\n//;tbegin;P;D' -e "s/'/''/g" <<< $myvar 

Часть, которая отвечает за неработоспособную пустую строку-удалить, такова:

 -e ':begin;$!N;/^state-text: {[[:space:]]\n/s/\n//;tbegin;P;D' 

глубже …

D удаляет содержимое пространства шаблонов, вплоть до первой новой строки (или до конца, если нет новой строки), и запускает новый цикл. Последнее означает, что любые команды, которые приходят после D в программе sed, не будут выполняться, если выполняется сам D.

отсюда

  • regexp в ksh для расширений tgz, tar.tgz
  • сценарий оболочки заменяет только первую строку в переменной
  • Linux shell - непредвиденная ошибка
  • Как использовать команду cp в скрипте bash для копирования файлов с пробелами и символами $?
  • Проверьте, установлены ли несколько переменных
  • Нужен сценарий оболочки для преобразования CSV в формат Apache httpd
  • Выполнять независимые greps в одном сценарии оболочки
  • Как распечатать последнее слово, которое содержит разделитель поля
  • Как узнать идентификатор процесса родительского процесса?
  • Переадресация переменной bash в netcat
  • Баш читал с разделителем прошлых строк
  • Список файлов из вложенного zip-файла без лишних
  • Interesting Posts

    Письма с ошибками Cron в Linux

    virt-manager и opengl

    Как исправить команду unix `join`, вставив ^ M между столбцами соединения? -unix

    Учебное пособие по отображению ключей в KSH в режиме EMACS

    Установка OpenBSD на компьютере под управлением Linux

    Копировать удаленный btrfs инкрементный снимок на новый диск с UUID

    Обход / удаление ссылки на неисправный диск

    Какие проблемы, связанные с UEFI, мне нужно искать при получении компьютера x86 для Linux?

    Linux Source Routing, Сильная модель конечной системы / Сильная модель хоста?

    Поиск и удаление больших файлов, открытых, но удаленных

    Изменить порт DST на мостовой трафик

    Может ли bash распознавать объявление переменной как строку, если вы не ставите кавычки?

    Как я могу искать имена файлов, которые начинаются с xy_ *, и создаются / редактируются сегодня?

    Предотвратить добавление знака плюс к сборке Linux

    Способ преобразования одновременного сочетания клавиш клавиш / букв в другой ключ?

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