Gnu

如何在 recsel 中轉義撇號?

  • April 26, 2022

讓我們考慮以下recfile

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 版。

這實際上是 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!

引用自:https://unix.stackexchange.com/questions/700457