【发布时间】:2016-04-10 09:23:41
【问题描述】:
运行以下 grep 命令时得到奇怪的结果,首先“1.txt”的内容是这样的:
401 f
-- -----
那么当使用cat 1.txt | grep -v -- --时,结果是401 f,命令cat 1.txt | grep -v -- -,结果也是401 f。我知道第一个字段中的-- 是grep 的过滤模式,所以我认为第二个字段中的-- 和- 可能都表示标准输出,对吧?然后我运行cat 1.txt | grep -v --,这里我省略了stdout,但它是错误的,信息是Try 'grep --help' for more information。虽然我也运行了cat 1.txt | grep -v -,并且这行得通,但结果是401 f。
为了进一步了解 grep 中 -- 和 - 之间的区别,我运行 cat 1.txt | grep --,它显示 Try 'grep --help' for more information。 cat 1.txt | grep - 得到结果 -- -----。
顺便说一句,我试过了
cat 1.txt | grep -v '--' --cat 1.txt | grep -v '--' -cat 1.txt | grep -v '--'cat 1.txt | grep -v '-'cat 1.txt | grep '--'cat 1.txt | grep '-'
最后,我得到了相同的对应结果。
我的问题可能是
第二个字段
--和-有什么区别?为什么我不能使用
--模式得到-- -----行内?
【问题讨论】:
-
--不带引号表示“选项结束” -
@M.M 引号无关紧要。