fzf에서 작은따옴표 쿼리를 탈출하세요.

fzf에서 작은따옴표 쿼리를 탈출하세요.

나는 개인 데이터베이스에 GNU reutils를 사용하기 시작했습니다. 이 경우에는 도서 데이터베이스에 관한 것입니다. 또한 FZF를 사용하여 책 사이를 탐색하여 제목별로 책을 검색하고 모든 정보를 미리 볼 수 있도록 하고 싶습니다.

헤더에 작은따옴표가 없으면 다음 스크립트는 정상적으로 실행됩니다.

recsel -C books.rec -P "Title" | fzf --preview "recsel -e \"Title='\"{}\"'\" books.rec"

다음 표현식이 작동합니다.-e "Title='My best book'"

이것은 다음을 수행하지 않습니다.-e "Title='It's a nice book'"

GNU Recutils 문서에 따르면 표현식은 형식이어야 하므로 -e "Field='Value'"이를 달성하는 방법을 모르겠습니다. 값 주위의 작은따옴표가 여기서 문제입니다. 어떡해?

답변1

몇 시간 동안 읽고 테스트한 끝에 해결책을 찾았습니다. 이것은 분명히 내 코드의 구문 문제이자 구문 오류입니다 recsel.

형식 -e 'Field="Value"'도 작동합니다(작은따옴표를 큰따옴표로 전환하거나 그 반대로 전환). 확장(왼쪽 및 오른쪽) 작은따옴표 위치는 명령을 사용할 때도 작동하므로 fzf --preview결과는 다음과 같습니다.

recsel -C books.rec -P Title | fzf --preview 'recsel -e Title=\"{}\" books.rec'

관련 정보