2017-12-10 28 views
0

aptの正規表現でネイティブにシーケンスをエスケープする方法はありますか?apt正規表現のエスケープシーケンス

私は文字列の++と文字通り一致したいと思うlibpng++のような検索があります。私は手動で\+\+++をエスケープできることを知っていますが、個々の文字を手動でエスケープするのではなく、文字列をエスケープする必要があります。

私は、apt-cache search libpng++試してみた"libpng++"'libpng++'\"libpng++\"\'libpng++\'\Qlibpng++\Eなど

いずれかがこの作業を取得する必要がありますか?

+0

@WiktorStribiżewをアップしてくれてありがとう。私はそれを行うことができることを知っているが、シーケンスは私に変数として来る、私は本当にそれぞれを手動で編集する必要はありません。元の質問を編集しました。 – StephenG

+0

本当にそれをエスケープする方法はありません。しかし、 'apt-cache search $(echo libpng ++ | sed '| + | \\ + | g')' –

+0

のようなことができます。この場合、sedを使って各特殊文字をエスケープしてください。 –

答えて

0

あなたはのように、apt-cacheに渡す前に、変数を「治療」することができます

var="libpng++" 
var=$(echo $var | sed 's|\([+*?]\)\\\1|g') 
apt-cache search $var 

[と上記]の間に、他の特殊な正規表現文字を追加します。