Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 使用grep“^d";在unix中_Shell_Unix_Grep - Fatal编程技术网

Shell 使用grep“^d";在unix中

Shell 使用grep“^d";在unix中,shell,unix,grep,Shell,Unix,Grep,我正在准备测试,突然遇到一个命令/表达式: grep "^d" | wc -l 有人能解释一下为什么使用此命令吗?此命令用于计算以d开头的行数(在文件中或从管道中) 我可以想象,它用于计算目录中的目录数量。这用于计算以d开头的行数(在文件中或从管道中) grep "^d" | wc -l string string dir dir2 dir3 3 //Out of wc -l command (ie) grep catches only three lines which started wi

我正在准备测试,突然遇到一个命令/表达式:

grep "^d" | wc -l

有人能解释一下为什么使用此命令吗?

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


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

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

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"
grep "^d" | wc -l
我可以想象它被用来计算一个目录中的目录数量

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"
grep "^d" | wc -l
在您传递“CTRL+D”之后,执行上述命令将从标准输入中查找输入,EOF、grep将捕获该输入(我更喜欢grep greps:))只有以“D”开头的行和wc-l统计grep传递给它的行数

基本上,grep读取文件、管道和标准输入。这是第三个案例

在您传递“CTRL+D”之后,执行上述命令将从标准输入中查找输入,EOF、grep将捕获该输入(我更喜欢grep greps:))只有以“D”开头的行和wc-l统计grep传递给它的行数


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

^
在正则表达式中表示“在行首”

是的,这将
grep
用于以
d开始的任何行

注意,在这种情况下,表达式应为:
grep“^d”-c
-c
,用于计数匹配,以避免调用另一个二进制。

^
在正则表达式中表示“在行首”

是的,这将
grep
用于以
d开始的任何行

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

打印包含模式匹配项的行

因此,
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
,该行最终计算其输入中的行数。

打印包含模式匹配项的行

因此,
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
,最后计算其输入中的行数。

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

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"
grep "^d" | wc -l
此命令可用于计算目录中的目录数,如-

ls -lrth | grep "^d" | wc -l
要仅获取目录中的文件数,可以排除“^d”,如-


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

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"
grep "^d" | wc -l
此命令可用于计算目录中的目录数,如-

ls -lrth | grep "^d" | wc -l
要仅获取目录中的文件数,可以排除“^d”,如-


希望不要从
ls-l
输出中计算目录——从脚本中计算目录的最佳实践方法根本不涉及
ls
<代码>(shopt-s nullglob;set--*/;echo$#)
顺便说一句,这类问题是您的朋友。考虑一下在将来使用它,只询问你检查过结果后不清楚的内容。希望不要从<>代码> ls -L/<代码>输出中计算目录——从脚本中计算目录的最佳实践方法根本不涉及<代码> ls < /代码>。代码>(shopt-s nullglob;set--*/;echo$#)
顺便说一句,这类问题是您的朋友。先考虑使用它,然后只询问在检查其结果后不清楚什么。<代码> GRP- C′^ D′/CODE >,而POSIX不需要在前面的参数之前对这些选项进行解析,因此GNU工具允许另一个排序,但它们是作为扩展的。<代码> GRP-C’^ D’< /代码>相反,POSIX不要求在参数前面解析选项,因此,尽管GNU工具允许其他排序,但它们作为扩展进行解析。