在unix中使用grep“^ d”

时间:2016-06-17 13:41:12

标签: shell unix grep

当我遇到命令/表达时,我正准备进行测试:

grep "^d" | wc -l

有人可以解释为什么使用这个命令吗?

5 个答案:

答案 0 :(得分:1)

这用于计算以d开头的行数(在文件中或从管道中)。

我可以想象它用于计算目录中的目录数量。

答案 1 :(得分:1)

正则表达式中的

^表示在行的开头处'。

所以,对于以grep

开头的任何行,这将是d

请注意,在这种情况下,表达式应为: <{1}},grep "^d" -c用于计数匹配,以避免调用另一个二进制文件。

答案 2 :(得分:1)

Unix中的

“ ^ d”也用作目录的指示。

grep "^d" | wc -l

此命令可用于计算目录中的目录号,例如-

ls -lrth | grep "^d" | wc -l

要仅获取目录中的文件数,可以排除“ ^ d”,例如-

ls -lrth | grep -v "^d" | wc -l

答案 3 :(得分:0)

grep "^d" | wc -l
string
string
dir
dir2
dir3
3 //Out of wc -l command (ie) grep catches only three lines which started with "d"

执行上面的命令在你传递“CTRL + D”之后查找标准输入的输入,其中EOF,grep捕获(我更喜欢grep greps :))只有以“d”开头的行和wc -l计算的数量grep传递给它。

基本上,grep从文件,管道和标准输入读取。这是第三种情况。

答案 4 :(得分:0)

grep打印包含模式匹配的行。

因此,grep "^d" | wc -l计算以d开头的行数。

假设我在foo.txt

之下的行下面
dline1 abcd
dline2 abcd

line3 abcd
line4 abcd

dline5 abcd
dline6 abcd

所以,当我运行以下命令时:

cat foo.txt | grep "^d" | wc -l

它返回4,因为有4行(行数)以d开头。

cat foo.txt返回作为输入传递给grep "^d"的文件内容,该文件内容返回以d开头的行,该行作为输入传递给wc -l,最终对行进行计数它的输入。