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'

おすすめ記事