Linux中的管道符与grep命令

Linux |管道符

管道符在Linux系统中还是比较常用的,比如我们平常使用的catpsls,如果想对查找的内容进行过滤,就会用到grep命令,而管道符就是将这两个命令进行连接的一个符号,Linux会将管道符前面的内容作为后面命令的参数进行执行,举个🌰例子:

ls | grep test # 查找文件名中包含test的文件
ps -ef 	| grep ssh #查找所有与ssh相关的进程

示例1讲解

在上面的第一个例子中,执行ls命令,会获得一个文件列表(如下)

a.txt b.txt c.txt test.txt test1.txt test2.txt

通过管道符之后,以上字段都会成为下一个函数(grep)的参数,而grep命令则用来找到这些字段里面含有test的内容并进行显示,因此得到的结果就是:

test.txt
test1.txt
test2.txt

示例2讲解:

ps -ef命令是列出所有的进程,Linux系统本身就包含很多进程,若是我们再启动一些其他的项目,那么进程将会特别的多,而我们可能仅需要查看一些进程,因此将ps -ef的查询结果作为参数丢给grep命令做一个筛选,就会获得我们想看的哪些进程内容,在我的实验机器中,该命令的结果如下:

root 958 1 0 Mar27 ? 00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 959 958 0 Mar27 ? 00:00:00 sshd: jim [priv]
jim 1045 959 0 Mar27 ? 00:00:02 sshd: jim@pts/0
root 44556 1102 0 18:26 pts/1 00:00:00 grep --color=auto ssh

可以看到一共查出来了四条内容,前三条内容为ssh进程相关的内容,而第四条却是「grep命令查找ssh关键字」所产生的进程,又做过几次试验后得知,凡是使用grep查询某个内容,都会产生一个这样的进程,因此进程若是使用grep命令来过滤,同时又不想显示这个「grep」的进程,可以再多加一个管道符来过滤掉最后一条内容:

ps -ef | grep ssh | grep -v grep

在该命令中,我们先使用ps -ef查找所有的进程,随后使用grep ssh过滤出跟ssh有关的进程,最后再使用grep -v命令去除掉含有「grep」关键字的进程,该命令查询结果如下:

root 958 1 0 Mar27 ? 00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 959 958 0 Mar27 ? 00:00:00 sshd: jim [priv]
jim 1045 959 0 Mar27 ? 00:00:02 sshd: jim@pts/0

grep 命令

grep 命令是一个非常常用的查找命令,可以用来查找字段或文件中包含的内容,因此,有以下几种用法:

1. 查找某个文件中的某个字段

grep xxx filename # grep 字段 文件名

grep hello test.txt为例,查找结果如下(由于CSDN中Markdown的限制,在字段中无法显示颜色,但是下方的所有hello均为红色):

hello world
hello

2. 统计某个关键字出现的行数

在下方命令中,若某一行含有「一个或多个」我们查找的关键字,统计结果+1,注意统计的是行而不是该关键字出现的次数。

grep -c xxx filename # grep -c 字段 文件名

我创建一个名为hello.txt的文件,内容如下:

hello hellohello hello
hello hello
hello
nohello
abcd

可以看到,在该文件中,一共有4行内容包含hello关键字,使用grep -c hello hello.txt进行统计,结果为「4」。

除此之外,还可以过滤管道符之前命令的内容,如上文所示。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值