답변:
작은 따옴표 안에있는 작은 따옴표를 이스케이프 할 수 없습니다. [bash 매뉴얼]에 설명 된대로 : ( http://www.gnu.org/software/bash/manual/bashref.html#Single-Quotes ) :
작은 따옴표 ( '' ')로 문자를 묶으면 따옴표 안에 각 문자의 리터럴 값이 유지됩니다. 백 슬래시가 앞에 있어도 작은 따옴표 사이에는 작은 따옴표가 없을 수 있습니다 .
따라서 다른 접근 방식을 사용해야합니다.
큰 따옴표를 사용하십시오.
grep "'type' => 'select'" file
불필요하게 복잡한 솔루션을 선호하는 경우 :
grep "'"type"'"\ =\>\ "'"select"'" file
작은 따옴표를 지정하는 대신 항상 단일 문자를 검색 할 수 있습니다.
grep '.type. => .select.' file
그러나 그냥 사용 "
하면 훨씬 간단합니다.
$var
, 당신은 할 수있는 grep '$var' file.php
작은 따옴표. 자세한 내용은 새로운 질문을 게시하고 여기에 의견을 남겨주세요. 기꺼이 도와 드리겠습니다.
$output = $info['function']($variables);
나는 단지 이중 백 슬래시로 올바르게 탈출해야했습니다. 이것은 모든 말과 targetstring="\$output = \$info\\['function'\\](\$variables);" targetlinenumber=`grep -n "$targetfile" -e "$targetstring" | cut -d :f 1`
.txt 파일이 들어있는 디렉토리로 cd
cd /path
그런 다음 :
당신이 사용할 수있는 grep "'type' => 'select'" name.txt
또는 :
`grep "'type' => 'select'" /path/file.txt
출력 :
grep
다른 (약간 관련이없는) 기능이 아닌 작은 따옴표에만 해당됩니다 .
-r
옵션으로 (OP 쓰기와 같이) 파일 이름이 필요하지 않습니다.