Использование GREP -RECURSIVE, как исключить конкретную строку с «нежелательным» и «хотела» в нем?

Со старыми шрифтами X, `.. 'выглядела симметрично, как‛ ..'

Также учитывая, что латекс `.. 'генерирует правильные левый и правый сингл кавычки вроде '..'

Итак, `.. 'был взломом, и в 2012 году coreutils изменил на оболочку, похожую на кавычки' .. '

Однако теперь это был не полный синтаксис оболочки и генерировать поврежденный вывод, если присутствуют встроенные символы "\ r" и т. д.Также непоследовательно, в некоторых случаях не использовались кавычки, а иногда использовались кавычки Unicode «..» (которые используют кавычки, как определено для локали, и обслуживают экранирование этих управляющих символов).

Совсем недавно (2015 г.) патч набор был введен в coreutils, чтобы сделать это более согласованным, путем цитирования всех выходных имен файлов в формате совместимости с оболочкой, который также соответствующим образом экранирует управляющие символы и позволяет для упрощения копирования и вставки обратно в другие команды. В других элементах диагностики используется "полное кодирование Unicode", как упомянуто выше.

5
20.09.2018, 13:01
2 ответа

Вы можете просто передать его в grep -v 'alias', чтобы получить все строки, которые не содержат alias.

3
27.01.2020, 20:32

Один из способов предотвратить совпадение регулярного выражения с самим собой — заключить один символ в класс символов:

alias mytodo='grep --recursive "TOD[O]: "'

В качестве альтернативы (шляпа -подсказка к Stéphane Chazelas ), вы можете сохранить псевдоним с дополнительными кавычками -в шаблоне:

alias mytodo='grep --recursive "TO''DO: "'

Тогда строка все равно не будет найдена, но псевдоним содержит исходный шаблон. Это полезно, когда вы хотите использовать, например. фиксированное соответствие строки -(grep -F).

11
27.01.2020, 20:32

Теги

Похожие вопросы