次の行を含むファイルがあります。
xxx <u2py.DynArray value=b'F\xfeVOC\xfeD_VOC'>
シェルスクリプトでgrep u2py.DynArray value=b'F\xfeVOC\xfeD_VOC'
何をしようとしていますか?
grep "u2py.DynArray value=b'F\xfeVOC\xfeD_VOC'"
ファイルを試しましたが、何も戻りませんでした。
ベストアンサー1
オプションの使用-F
(固定文字列の検索、以前はこのユーティリティを使用して行われたfgrep
):
grep -F "u2py.DynArray value=b'F\xfeVOC\xfeD_VOC'" file
.
文字は\
正規表現演算子で、1 つは 1 文字と一致し、もう 1 つは一致するために使用されます。脱出する正規表現演算子または新しい演算子の導入(上記のように、x
この動作はPOSIXでは指定されておらず、実装によって異なる場合があります)。
したがって、そうでない場合は両方とも-F
エスケープする必要があります。
Bourneのようなシェルまたはfish
insideにはシェルに対する特別なエスケープの意味が"..."
あるので\
、これには別のエスケープラウンドも必要です。
grep "u2py\.DynArray value=b'F\\\\xfeVOC\\\\xfeD_VOC'" file
cshまたはtcshでは、次のようになります。
grep "u2py\.DynArray value=b'F\\xfeVOC\\xfeD_VOC'" file
シェルrc
および派生クラスは"..."
参照演算子としてサポートされていません。一重引用符を使用する必要があります。
grep 'u2py\.DynArray value=b''F\\xfeVOC\\xfeD_VOC''' file
''
(一重引用符は一重引用符内に表示されます。通常の文字のように特殊文字を使用する方法は?より多くの情報を知りたい場合)。