当前位置:   article > 正文

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

grep wc

1. grep命令

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

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

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

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

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

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

容。

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

选项包括:

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

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

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

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

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

2. wc命令

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

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

wc [选项] Linux路径

选项:

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

3. 管道符 |

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

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

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

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

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

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

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/213080
推荐阅读
相关标签
  

闽ICP备14008679号