0

我想搜索-c使用grep

例如:

$>ls -al | grep '-c'

grep认为这是一种选择。

$>Usage: grep -hblcnsviw pattern file . . .

如何-c以字符串形式搜索?

4

4 回答 4

6

Tell grep where your options end:

grep -- -c
于 2013-04-02T12:17:08.800 回答
2

您可以:

  1. 转义连字符。

    grep '\-c'
    
  2. 使用-e( --regexp=) 标志

    grep -e -c
    grep --regexp=-c    # Not in POSIX, but supported at least in Linux and OS X.
    
于 2013-04-02T12:12:33.180 回答
1

您使用以下-e选项:

$ ls -a1 | grep -e -c

这当然在文档中提到,因此:

-e 模式,--regexp=模式

使用 PATTERN 作为模式。这可用于指定多个搜索模式,或保护以连字符 (-) 开头的模式。(-e 由 POSIX 指定。)

于 2013-04-02T12:14:00.593 回答
0

为了保持话题,您最初问题的答案是使用要么--表示要处理的选项结束,要么使用-e明确标记选项。

ls但是,如果任何文件名包含新行,则解析 的输出将产生不正确的结果。改用find

find . -depth 1 -name "-c"
于 2013-04-02T12:30:04.543 回答