Odpowiedzi:
Byłem w stanie to zrobić z odwrotnym ukośnikiem:
25 % grep \< xmospos.c
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <X11/Xlib.h>
Cytowany mniej niż i cytowany, odwrócony o mniej niż oba, dawał głupie odpowiedzi.
grep -oP '(?< )(.*)$'na przykład nie działa z pojedynczymi cudzysłowami. Najpierw próbowałem.
(?<! )(.*)$czy (?<= )(.*)$?
Dwie proste zasady:
\C unika następnego znaku, cokolwiek to jest, innego niż nowy wiersz.'text'unikają znaków między nimi, w tym odwrotnego ukośnika, ale nie zawierają pojedynczego cudzysłowu (ponieważ oznacza on koniec cytowanego tekstu).A zatem:
grep -P '<html>' myfile
grep -P \<html\> myfile
grep -P '(?<!<)html' myfile
grep -P \(\?\<\!\<\) myfile
Jeśli potrzebujesz przekazać argument zawierający pojedyncze cudzysłowy, możesz użyć '\''„do ucieczki” pojedynczego cudzysłowu w pojedynczych cudzysłowach. Technicznie rzecz biorąc, oznacza to zakończenie pierwszego tekstu dosłownego, następnie umieszczenie literału 'w tym samym słowie, a następnie bardziej dosłownego tekstu w tym samym słowie.
grep '^D'\''oh!' myfile
Pozostałe zasady cytowania (podsumowane):
!"#$&'()*;<>?[\]^`{|}~(innymi słowy, następujące znaki są bezpieczne: litery, cyfry %+,-./:=@_i znaki spoza ASCII)."$\`i (w powłokach z włączoną historią) !. Odwrotny ukośnik między podwójnymi cudzysłowami pojawi się w ciągu, chyba że poprzedza jeden z nieliterowych znaków.Te zasady dotyczą bash i innych powłok w stylu Bourne'a (takich jak ash i ksh). Odnoszą się one również do zsh (z wyjątkiem tego, że =po spacji może być potrzebne cytowanie). Zasady w csh / tcsh i w Fish są różne.