ksh / bash Форматирование файлов через sed по файлу cat | команда sed

Я новичок в платформе unix, (обсуждаются альтернативные подходы) Я пытаюсь изменить цвета содержимого файла условно. Мой файл:

ABCD Value Value Value Value Value Value Value Value Value Value Value Value Value Value Value Value 

Моя команда – cat file4 | sed "s,.*,${esc}[33m&${esc}[0m," cat file4 | sed "s,.*,${esc}[33m&${esc}[0m," , логикой которой я понимаю:

  1. Cat файл затем командой sed отредактируйте цвет содержимого с помощью цветовых кодов ANSI.

Но когда я запускаю этот файл, сгенерированный не так, как нужно:

 [33mA BCD[0m [33mValue Value Value Value [0m [33mValue Value Value Value [0m [33mValue Value Value Value [0m [33mValue Value Value Value [0m 

Желаемый результат:

  • Поле A должно быть красным.
  • Поле C должно быть синим.
  • Поле D должно быть желтым.
  • Поле B должно быть зеленым.

One Solution collect form web for “ksh / bash Форматирование файлов через sed по файлу cat | команда sed”

Во-первых, это UUOC ( бесполезное использование кошки ). Здесь нет хорошего сменщика, поэтому sed отлично умеет читать файлы, и даже если это не так, то перенаправление стандартного ввода из файла будет эквивалентно его проводу.

 esc=$(echo -e '\e') sed "s,\(.*\) \(.*\) \(.*\) \(.*\),$esc[31m\1 $esc[34m\2 $esc[33m\3 $esc[32m\4$esc[m," file4 

Это предполагает наличие двух пробелов между полями, которые вы изначально указали, хотя это, похоже, было в редактировании; соответственно.

Я понятия не имею, почему вы думали, что ваш оригинальный способ (совпадение со всем текстом на линии, оберните его между двумя escape-кодами (для желтого), даст вам несколько цветов.

  • Группировать по и сумме в сценарии оболочки без awk
  • sed с множественным выражением для аргумента на месте
  • присоединяйте два файла на основе столбца, когда в сценарии bash нет взаимно однозначного соответствия (awk, grep, sed)
  • Как удалить строки, содержащие IP-адрес?
  • Свернуть несколько повторяющихся частей последовательных строк
  • Как извлечь первое целое из текстовой строки в столбце файла с разделителями табуляции?
  • Многострочная обработка текста: редактирование sshd_config
  • Выберите строки, начинающиеся с определенных номеров
  • wget on Centos 7 Terminal как загрузить только текст без кода стиля сайта
  • Как заменить слово внутри файла .DOCX с помощью командной строки Linux?
  • Греп для числа в строке
  • Interesting Posts

    длительная задержка в (win) rar перед добавлением файлов

    Больше не может переключаться раскладки клавиатуры в xfce

    Я по ошибке нарушил свой openbox menu.xml

    Где управляющая страница программиста для открытой функции C?

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

    firewall-cmd не блокирует указанный порт

    Заменить символы в строке соответствия

    случай bash && дополнительный OPTARG

    Получить путь к текущему скрипту при выполнении через символическую ссылку

    Насколько безопасны репозитории по умолчанию для Fedora, CentOS и Debian?

    Изменить Ubuntu overlayroot @ время загрузки

    Как переключиться на другой экран для запуска git-команд при разрешении конфликтов (команда блокировки)?

    Как проверить, является ли диск SSHD (гибридный диск), используя команды ATA

    Bash – Сохранять цветовые коды в переменной

    используя `lpr`, чтобы получить имя файла и номера страниц, напечатанные в pdf

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