답변:
백 슬래시로 할 수있었습니다.
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 문자) 는 적어도 몇 번은 인용해야합니다 ."$\`
에서 and를 제외한 모든 문자는 문자 적으로 사용됩니다 (및 기록이 활성화 된 쉘에서) !
. 리터럴이 아닌 문자 중 하나에 선행하지 않는 한 큰 따옴표 사이의 백 슬래시는 문자열에 나타납니다.이 규칙은 bash 및 다른 Bourne 스타일 쉘 (예 : ash 및 ksh)에 적용됩니다. 그것들은 zsh에도 적용됩니다 ( =
공백 후 인용이 필요할 수는 없습니다). csh / tcsh와 Fish의 규칙이 다릅니다.