Ответы:
Я смог сделать это с обратной косой чертой:
25 % grep \< xmospos.c
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <X11/Xlib.h>
Процитированный менее чем, и процитированный, обратный слэш меньше, чем оба дали глупые ответы.
grep -oP '(?< )(.*)$', не работает с одинарными кавычками. Попробовал сначала.
(?<! )(.*)$или (?<= )(.*)$?
Два простых правила:
\Cэкранирует следующий символ, независимо от новой строки.'text'экранируют любой символ между ними, включая обратную косую черту, но не включают в себя одинарные кавычки (так как они отмечают конец текста в кавычках).Таким образом:
grep -P '<html>' myfile
grep -P \<html\> myfile
grep -P '(?<!<)html' myfile
grep -P \(\?\<\!\<\) myfile
Если вам нужно передать аргумент, содержащий одинарные кавычки, вы можете использовать '\''«экранирование» одинарных кавычек внутри одинарных кавычек. Технически, это то, что заканчивается первым литеральным текстом, затем помещает литерал 'в то же самое слово, затем более литеральный текст все еще в том же слове.
grep '^D'\''oh!' myfile
Остальные правила цитирования (суммированы):
!"#$&'()*;<>?[\]^`{|}~(другими словами, следующие символы безопасны: буквы, цифры %+,-./:=@_и не-ASCII символы)."$\`и (в оболочках с включенной историей) !. Обратная косая черта между двойными кавычками будет появляться в строке, если она не предшествует одному из не-литеральных символов.Эти правила относятся к bash и другим оболочкам в стиле Bourne (например, ash и ksh). Они также применимы к zsh (за исключением того, что =после пробела может потребоваться цитирование). Правила в csh / tcsh и в Fish различны.