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

Например: 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 .

  • Как я могу разобрать xml-файл с URL-адреса http без загрузки файла и распечатать нужную строку?
  • Где / когда - статусы выхода, возвращаемые для фоновых заданий в bash?
  • Поймать неожиданный ввод одиночного символа в bash
  • bash для выполнения чего-то, когда ключевое слово, увиденное на stdin
  • Условная установка файлов и каталогов в пакетах Debian
  • Выберите строки, начинающиеся с определенных номеров
  • Сценарий оболочки Linux удаляет определенное содержимое в файле
  • Изменить имена файлов в Makefile
  • Сценарий Bash для вывода пути на флеш-накопитель USB
  • вставить значение в конце каждой записи на основе уникальных идентификаторов
  • Есть ли заклинание командной строки для сохранения определенных столбцов по имени в CSV-файле?
  • Interesting Posts

    Изменение драйверов видеокарты в Linux Mint 17

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

    Цель «Формат ASCII, с чрезмерным» форматом файла

    Как проверить, что служба прослушивает как ipv4, так и ipv6?

    Как запустить cgminer при загрузке?

    Как подсчитать количество запусков оболочки / терминалов?

    Установка MySQL на CentOS вызывает ошибку, которая не может найти mysqld.sock

    Загрузка Knoppix ISO из Grub – устройство / ури безумие

    Странная неправильная кодировка, отображаемая при загрузке systemd

    Не удалось добавить ubuntu в домены Windows? используя центризацию

    Чтение / запись на необработанном изображении NTFS

    Почему pstree показывает имя моего скрипта вместо имени интерпретатора оболочки?

    подключить две виртуальные машины и одну виртуальную машину к Интернету

    Число подключений по умолчанию, разрешенное на ip за минуту / секунду

    Начальный ядро ​​- получение исходного кода ядра (ubuntu)

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