/ / Чи можете ви зберегти форматування незрівнянного вмісту у форматі grep? - linux, bash, кольори, grep, ack

Чи можете ви зберегти форматування неперевершеного вмісту в grep? - linux, bash, colors, grep, ack

Якщо ви використовуєте grep двічі, виділіть зспочатку роздягається. Наскільки я можу сказати, це допомагає уникнути відповідності кодів форматування. (Навпаки, "ack-grep" виділить нові збіги, зберігаючи форматування у старих матчах до тих пір, поки сірники не перекриватимуться, але вони з радістю відповідатимуть використаним кодам форматування.) Поведінка, яку я шукаю, - це узгодження шаблону на базовому тексті, як би форматування не було там, але не ціною зняття форматування з оригіналу для подальшого відображення. Чи десь така поведінка побудована? У мене греп псевдонім із --color = завжди.

Це може бути дублікат Збережіть фарбування після того, як трубопроводити грейп до грипу - проте я також хочу дізнатися, чому і чомуяк деякі програми відформатують смужку і чи можна їх використовувати для виправлення випадкового відповідності коду евакуації. (Якщо це вирішено або є нерозв’язним, я з радістю закрию його.)

Відповіді:

2 для відповіді № 1

За замовчуванням у файлах .bashrc ls та grep визначаються як псевдоніми. Псевдоніми:

ls -> ls --color=auto
grep -> grep --color=auto

Параметр auto означає, що якщо stdout єна екрані він покаже вихід з кольорами, але якщо вихід буде перенаправлений на трубу або файл, форматування кольорів буде стерто. Коли ви ставите параметр "--color = завжди", це змушує форматувати кольори незалежно від того, куди буде переспрямовано висновок. Ви також можете ніколи не застосовувати жодне кольорове форматування за допомогою --color=never

Псевдонім можна перевірити, ввівши alias. Ви також можете виконати рівнину ls або grep команда (тобто ніякі параметри, задані псевдонімами), додаючи зворотну косу рису на початку.

Наприклад, за допомогою команди ls:

ls

Показує вихід на екрані без кольорів.