Якщо ви використовуєте 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
Показує вихід на екрані без кольорів.