Відповіді:
Я зміг це зробити за допомогою нахилу:
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)."$\`
і (в оболонках з увімкненою історією) !
. Зворотний проріз між подвійними лапками з’явиться в рядку, якщо він не передує одному з нелітеральних символів.Ці правила призначені для башмаків та інших снарядів у стилі Борна (таких як зола та кш). Вони застосовуються і до zsh (за винятком того, що =
після пробілів може знадобитися цитування). Правила в csh / tcsh та в Fish різні.