回答:
ARGS="-a -b -c"
grep -- "$ARGS"
grep -- "--name awesome"
。
ダッシュは、http://tldp.org/LDP/abs/html/special-chars.html#DASHREFに記載されているBashの特殊文字です。したがって、これを一度エスケープすると、Bashを通り過ぎることになりますが、Grepには、ダッシュすること自体に意味があります(オプションを提供することにより)。
したがって、本当に2回エスケープする必要があります(他の言及された回答を使用しない場合)。以下は動作します/動作するはずです
grep \\-X
grep '\-X'
grep "\-X"
Bashがスクリプト/プログラムに引数を渡す方法を試す1つの方法は、すべての引数をエコーする.shスクリプトを作成することです。私はecho-args.shと呼ばれるスクリプトを使用して時々遊んでいますが、含まれているのは次のとおりです。
echo $*
私はそれを次のように呼び出します:
bash echo-args.sh \-X
bash echo-args.sh \\-X
bash echo-args.sh "\-X"
あなたはアイデアを得ます。
grep -e -X
トリックを行います。
grep -- -X
grep \\-X
grep '\-X'
grep "\-X"
grep -e -X
grep [-]X
nawkを使用できます
$ nawk '/-X/{print}' file
ls -l | grep "^-"
これがあなたの目的に役立つことを願っています。
grep "^ -X"ファイル
それはgrepを実行し、ファイルからすべての行を選択します。^はgrep "^"で始まり、
-
。
--
:手段やないunix.stackexchange.com/questions/11376/...