如何在recsel中转义撇号?

如何在recsel中转义撇号?

让我们考虑以下记录文件

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

这实际上是 shell 引用的问题,而不是recsel具体的问题。

记录文本!中的 会增加额外的复杂性(至少在交互式 bash shell 中) - 如果没有它,您可以在双引号内使用转义双引号,从而删除内部任何单引号的特殊含义。关闭历史扩展来演示:

$ 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!

相关内容