多次使用grep命令

时间:2014-11-12 11:16:46

标签: grep

任何人都能说出这条线究竟是什么意思吗?这里grep命令多次使用。

#chkCount=`ps -aef | grep -i "File_Transfer.sh"|grep -v grep| wc -l`

3 个答案:

答案 0 :(得分:2)

让我们一块一块地打破这一局面。首先,命令被注释掉,因此在删除起始#

之前它不会运行
chkCount=`ps -aef | grep -i "File_Transfer.sh"|grep -v grep| wc -l`

命令ps -aef | grep -i "File_Transfer.sh"|grep -v grep| wc -l的输出将存储在变量chkCount中。

grep -i "File_Transfer.sh"查找包含“File_Transfer.sh”的行,但grep将忽略字符串的大小写。这意味着grep将匹配“File_Transfer.sh”,“File_TRANSFER.SH”或任何其他组合。

grep -v grep将匹配任何不包含单词grep的行。 -v反转比赛。这样做的目的是消除您发出的命令。换句话说,ps将列出名为File_Transer.sh的流程,它会列出您的命令ps -aef | grep -i "File_Transfer.sh"|grep -v grep| wc -lgrep -v会忽略ps -aef | grep -i "File_Transfer.sh"|grep -v grep| wc -l,只会匹配与File_Transfer.sh匹配的任何流程

最后,wc -l会计算输入wc的行数。因此,结果将是运行的进程数与“File_Transfer.sh”匹配

答案 1 :(得分:0)

此行列出了包含" File_Transfer.sh"的所有正在运行的进程和过滤器行。

然后进一步过滤输出以删除包含" grep"的行,因为grep命令本身将显示为带有文本" File_Transfer.sh"的运行进程。 / p>

wc -l计算找到的行数。

答案 2 :(得分:0)

多次使用grep(像这样的管道组合)就像一个两级滤波器;根据第二个实例的参数,将再次过滤从第一个实例传递的任何行。在这种情况下,ps -aef的结果通过管道传递给grep,它对“File_Transfer.sh”进行不区分大小写的搜索;然后grep输出的所有行再次被送到grep,它传递所有不包含grep的行(-v表示“反向匹配”,查找不匹配的行,而不是什么) wc - 最后,最终结果(发生次数)被分配给变量chkCount。