Gnu
如何在 recsel 中轉義撇號?
讓我們考慮以下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!