2

Я хочу сохранить результат grep в файле с форматированием так же, как вывод в Konsole(Kubuntu). Я пытался сохранить его в документе LibreOffice, но результат ничем не отличается от результата в текстовом файле. Как мне сохранить результат в файле с форматированием? Я имею в виду, как сохранить результат с цветным выводом?

2 ответа2

1

Чтобы сохранить цвета, используйте --color=always

grep --color=always "pattern" file.txt > newfile.txt

Со страницы руководства:

--color[=WHEN], --colour[=WHEN]
      Surround the matched (non-empty) strings, matching lines, context  lines,  file  names,
      line  numbers,  byte  offsets,  and separators (for fields and groups of context lines)
      with escape sequences to display them in color on the terminal.  The colors are defined
      by   the   environment  variable  GREP_COLORS.   The  deprecated  environment  variable
      GREP_COLOR is still supported, but its setting does not have priority.  WHEN is  never,
      always, or auto.
1

По умолчанию grep отключает форматирование цвета при передаче по трубопроводу или перенаправлении. Вы можете заставить его выдавать форматированный цвет с помощью опции --color=always :

grep --color=always "pattern" infile > outfile

Информация о цвете будет отображаться как сбежавшие символы. Если вы хотите удалить экранированные символы позже, вот отличная команда оболочки с sed чтобы сделать это:

sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"

(Обратите внимание, в OS X используйте sed -E "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .