다음 로그 파일을 고려해 보겠습니다.
Name: John
Text: It's me!
Name: Jane
Text: Hello
다음 명령은 두 번째 레코드를 선택하는 데 완벽하게 작동합니다.
recsel -e "Text = 'Hello'" test.rec
하지만 첫 번째 것을 선택하는 방법은 무엇입니까?
recsel -e "Text = 'It\'s me!'" test.rec
심지어에 따르면문서(섹션 3.5.2.2 “문자열 리터럴”) 이는 올바른 구문입니다.
저는 GNU Recutils 버전 1.9를 사용하고 있습니다.
답변1
recsel
이는 실제로 특정 문제 가 아닌 쉘 인용 문제입니다 .
텍스트에 로그인하면 !
(적어도 대화형 bash 셸에서는) 복잡성이 더해집니다. 텍스트가 없으면 큰따옴표 안에 이스케이프된 큰따옴표를 사용할 수 있으므로 안에 있는 작은따옴표의 특별한 의미가 제거됩니다. 다음을 보여주기 위해 기록 확장을 끄십시오.
$ set +o histexpand
$ recsel -e "Text = \"It's me!\"" test.rec
Name: John
Text: It's me!
그렇지 않으면 외부 작은따옴표를 사용하여 문자 그대로 작은따옴표로 묶었다가 다시 열 수 있습니다.
$ recsel -e 'Text = "It'\''s me!"' test.rec
Name: John
Text: It's me!