Linux---文本处理命令(grep、wc、管道符 |)

1. grep命令

grep命令能够在一个或多个文件中,搜索某一特定的字符模式(也就是正则表达式),此模式可以

是单一的字符、字符串、单词或句子。

注意:在基本正则表达式中,如通配符 *、+、{、|、( 和 )等,已经失去了它们原本的含义,而若

要恢复它们原本的含义,则要在之前添加反斜杠 \,如 \*、\+、\{、\|、\( 和 \)。

grep 命令是用来在每一个文件或中(或特定输出上)搜索特定的模式,当使用 grep 时,包含指定

字符模式的每一行内容,都会被打印(显示)到屏幕上,但是使用 grep 命令并不改变文件中的内

容。

格式:[root@localhost ~]# grep [选项] 模式 文件名

选项包括:

 模式:要么是字符(串),要么是正则表达式。

注意:如果是搜索多个文件,grep 命令的搜索结果只显示文件中发现匹配模式的文件名;而如果

搜索单个文件,grep 命令的结果将显示每一个包含匹配模式的行。

假设有一份 emp.data 员工清单:

#搜索此文件,找出职位为 CLERK 的所有员
[root@localhost ~]# grep CLERK emp.data
#只想知道职位为 CLERK 的员工的人数,可以使用“-c”选项
[root@localhost ~]# grep -c CLERK emp.data
#使用正则表达式找出以 78 开头的数据行
[root@localhost ~]# grep ^78 emp.data

2. wc命令

wc命令用于计算字数。利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件

名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

wc [选项] Linux路径

选项:

[root@localhost ~]$ cat testfile  
Linux networks are becoming more and more common, but scurity is often an overlooked  
issue. Unfortunately, in today’s environment all networks are potential hacker targets,  
fro0m tp-secret military research networks to small home LANs.  
Linux Network Securty focuses on securing Linux in a networked environment, where the  
security of the entire network needs to be considered rather than just isolated machines.  
It uses a mix of theory and practicl techniques to teach administrators how to install and  
use security applications, as well as how the applcations work and why they are necesary. 
[root@localhost ~]$ wc testfile           # testfile文件的统计信息  
3 92 598 testfile       # testfile文件的行数为3、单词数92、字节数598 
[root@localhost ~]$wc testfile testfile_1 testfile_2  
#统计三个文件的信息 
[root@localhost ~]$ wc testfile testfile_1 testfile_2  
#统计三个文件的信息  
3 92 598 testfile                   
#第一个文件行数为3、单词数92、字节数598  
9 18 78 testfile_1                   
#第二个文件的行数为9、单词数18、字节数78  
3 6 32 testfile_2                   
#第三个文件的行数为3、单词数6、字节数32  
15 116 708 总用量                    
#三个文件总共的行数为15、单词数116、字节数708 

3. 管道符 |

管道符的含义是:将管道符左边命令的结果,作为右边命令的输入

cat、sort、uniq、grep等命令均支持管道符,是因为这些命令均可从标准输入中读取要处理的文本

(即从标准输入中读取参数);而对于部分命令,例如rm、kill等命令则不支持从标准输入中读取

参数,只支持从命令行中读取参数(即rm命令后面必须指定删除的文件或者目录,kill命令后面必

须要指定杀死的进程号等)。

sort后面没有参数时,则对管道符丢给它的前一个命令的输出结果进行处理(即前一个命令的标准

输出作为本次命令的标准输入)。

当rm后面不指定删除的文件时,则会报错丢失参数,所以,rm等命令不支持从标准输入读取参

数,只支持在命令行指定参数,即指定删除的文件。

[root@localhost ~]$ ls | grep Desktop
--过滤ls的结果
[root@localhost ~]$ find / -name “test” | grep “/usr/lib64”
--过滤结果,只找路径带有/usr/lib64的结果
[root@localhost ~]$ cat a.txt | grep bbb | grep ccc
--可以嵌套使用
--cat a.txt的结果给 grep bbb 使用
--cat a.txt | grep bbb 的结果给 grep ccc使用
[root@localhost ~]$  cat hello.sh | sort | uniq | grep 'better’
--首先使用cat命令查看文本,打印到屏幕上内容即为cat命令的输出结果
--将前面cat命令输出的结果通过管道丢给sort命令,所以sort命令是对前面cat命令输出的文本进行排序
--sort跟uniq结合使用才能有效去重,所以通过管道将sort处理后输出的文本丢给uniq处理,
--所以uniq处理的是排序好的文本,可以进行有效去重
--最后一步过滤则同样是将前面命令即uniq命令处理后输出的文本进行过滤

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三月七꧁ ꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值