Удалить полную строку в текстовых файлах на основе тегов

Например: 01.txt, 02.txt, 03.txt и 04.txt имеют следующие значения.

HDR|A|B|C|D|F||||||| DTL|1|2|3|4|5||||||||||| DTL|5|6|7|8|9||||||||||| TLR|A|B|C|D|F||||||| 

Мне нужно удалить полные строки на основе тегов, таких как HDR, TLR.

После того, как линии HDR и TLR будут удалены из четырех файлов, он должен объединиться в один файл.

мы должны объединиться таким образом, чтобы поддерживать заказы файлов после удаления линий HDR, TLR. (01_latest.txt, 02_latest_txt, 03_latest.txt и 04_latest.txt)

Как мы можем достичь в сценарии UNIX?

2 Solutions collect form web for “Удалить полную строку в текстовых файлах на основе тегов”

Вы также можете удалить эти строки с помощью grep :

 $ grep -vE "HDR|TLR" *.txt > merged.txt 

Это пропустит любые строки, содержащие «HDR» или «TLR». | является оператором или, поэтому вы можете также расширить его, например, «STR1 | STR2 | STR3». Прохождение через файлы гарантируется, пока имена будут последовательно 01.txt , 02.txt и т. Д.

Вы можете убедиться в этом в следующем примере.

 $ ls -1 01.txt 02.txt 03.txt 04.txt 05.txt 06.txt 07.txt 08.txt 09.txt 11.txt 12.txt 13.txt 14.txt 15.txt 16.txt 17.txt 18.txt 19.txt $ echo *.txt 01.txt 02.txt 03.txt 04.txt 05.txt 06.txt 07.txt 08.txt 09.txt 11.txt 12.txt 13.txt 14.txt 15.txt 16.txt 17.txt 18.txt 19.txt 

Здесь вы можете увидеть, что оболочка расширила *.txt в следующем порядке, который вы ищете.

Вы можете удалить эти строки и объединить все, используя

 sed '/^\(HDR\|TLR\)|/d' [0-9]*.txt > merged.txt 

Здесь предполагается, что первая запись строки, которая должна быть удалена, является точно HDR или TLR .

  • Интерпретировать интерполированную переменную как литеральную строку в регулярном выражении Perl
  • Значение суммы рядом с определенным шаблоном
  • bash - как преобразовать несколько строк в одну строку для sh -c
  • «Правильный» способ проверить, работает ли служба в скрипте
  • Пройти через код состояния выхода после использования ||
  • Синтаксическая ошибка: неожиданный конец файла
  • Регулярное выражение, как получить значение в сценарии оболочки?
  • Сравните два раза в формате HH: MM: SS - ksh
  • Состояние внутри строки в Bashscript
  • Получить возраст процесса из командной строки
  • Если выражение в shell-скрипте работает только полурабочее
  • Interesting Posts

    «Echo 1> / sys / block / sdX / device / delete» на всех дисках, кроме предопределенного списка

    Перечислите переменные с префиксом, где префикс хранится в другой переменной

    Создание пользовательского расхождения

    скрипт для удаления файлов, если нет соответствующего файла с тем же именем, но другого расширения в другом подкаталоге

    Как предотвратить уведомления Skype во время разговора

    Время ожидания подключения sshuttle

    n-factor SSH-аутентификация для CentOS 7

    «Ошибка при загрузке разделяемых библиотек: libgtk-x11-2.0.so.0: невозможно открыть файл общих объектов» при выполнении двоичного кода oald8

    Привилегированный режим в bash

    Я не могу выполнить ping мой интерфейс связи при имитации 2 WAN-соединений

    tmux не запускает ~ / .bash_profile при запуске

    Как ядро ​​Linux знает, что конфликты произошли в домене конфликтов Ethernet?

    cgroups: blkio.weight, похоже, не имеет ожидаемого эффекта

    Может ли меньше сохранять цветной выход?

    Ошибка при загрузке зашифрованного диска: не удается инициализировать устройство-картограф

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