我想在文件中grep以破折号/连字符开头的字符串,比如-X,但这是一个命令行参数。
我试过了:
grep "-X"
grep \-X
grep '-X'
我想在文件中grep以破折号/连字符开头的字符串,比如-X,但这是一个命令行参数。
我试过了:
grep "-X"
grep \-X
grep '-X'
当前回答
你可以用nawk
$ nawk '/-X/{print}' file
其他回答
我没有Solaris机器,但是grep“\-X”在linux上为我工作。
Use:
grep—-X
文档
相关:裸双破折号是什么意思?(感谢nutty关于natty)。
正确的方法是使用“——”来停止处理参数,如前所述。这是由于在该工具的源代码中使用了getopt_long(来自getop .h的GNU c函数)。
这就是为什么您会在其他命令行工具上注意到同样的现象;因为它们中的大多数都是GNU工具,并且使用这个调用,所以它们表现出相同的行为。
顺便说一句,getopt_long是让我们在-rlo和——really_long_option和解释器中的参数组合之间进行酷炫选择的东西。
grep -- -X
grep \\-X
grep '\-X'
grep "\-X"
grep -e -X
grep [-]X
如果您正在使用另一个实用程序,它将单个参数传递给grep,您可以使用:
'[-]X'