$ aと$ bを一致させるために次のコマンドを記述しましたが、値に「-」が含まれていると、エラーが発生します。どうすればそれを回避できますか?
# a="-Xmx5324m"
# b="-Xmx5324m"
#
#
# echo "$a" | grep -Fxc "$b"
grep: conflicting matchers specified
ところで、本当に正規表現の一致が必要ですか、それとも文字列が別の文字列と等しい(またはその部分文字列である)かどうかをテストするだけですか?その場合は、組み込みのシェル
—
Uwe 2017
[[ ... ]]
またはシェルcase
の方が適していecho
ます。これは、と子プロセスの特異性の両方を回避するためです。
文字列が等しいかどうかこれが私のテストです
—
yael 2017
別の方法としては、あなたがリストされている誰もを使用しないべきではないこと:それはそれが理解されているので、引用符で囲まれた文字列内のダッシュをエスケープすることが可能です
—
アーロン
grep
リテラル文字ではなく、オプションの開始として、すなわちecho test-test | grep "\-test"
一致ではなく、未知の文句を言うだろう-t
フラグ。
grep -Fxc -- "$b" <<< "$a"
不要なパイプを回避するようにコマンドを変更することを検討してください