从 fzf 中转义单引号查询 recsel

从 fzf 中转义单引号查询 recsel

我开始使用 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'

相关内容