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