Shell脚本攻略:文本三剑客之grep

这篇具有很好参考价值的文章主要介绍了Shell脚本攻略:文本三剑客之grep。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、理论

1.grep

2.sort

3.uniq

4.tr

5.cut

6.split

7.paste

二、实验

1. grep

​编辑

​编辑

2.sort

3.uniq

​编辑

4.tr

5.cut

6.split

7.统计当前主机的连接状态

8.统计当前连接主机数

9.获取信息


一、理论

1.grep

(1)概念

grep是Linux中最常用的”文本处理工具”之一,grep与sed、awk合称为Linux中的三剑客。

grep的全称为: Global search Regular Expression and Print out the line

全称中的”Global search”为全局搜索之意。

全称中的”Regular Expression”表示正则表达式。

所以,从grep的全称中可以了解到,grep是一个可以利用”正则表达式”进行”全局搜索”的工具,grep会在文本文件中按照指定的正则进行全局搜索,并将搜索出的行打印出来。

(2)语法格式

grep [选项]… 查找条件 目标文件

表1 grep常用选项

选项 功能
-m 匹配#次后停止
-v 显示不被pattern匹配到的行,即取反
-i 忽略字符大小写  #可有可无
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q  静默模式,不输出任何信息
-A # after, 后#行 
-B # before, 前#行
-C # context, 前后各#行
-e 实现多个选项间的逻辑or关系,如:grep –e ‘cat ' -e ‘dog' file
-w 匹配整个单词
-E 使用ERE,相当于egrep,使用扩展正则
-F 不支持正则表达式
-f file 根据模式文件,处理两个文件相同内容 把第一个文件作为匹配条件
-r 递归目录,但不处理软链接
-R 递归目录,但处理软链接

2.sort

(1)概念

sort命令以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序

(2)语法格式

sort 选项 参数
cat file | sort 选项

表2 sort常用选项

常用选项 功能
f 忽略大小写,默认会大写字母排在前面
b 忽略每行前面的空格
n 按照数字进行排序
r 反向排序
u 等同uniq,表示相同的数据仅显示一行,去重
t 指定字段分隔符,默认使用tab键分隔
k 指定排序字段
o <输出文件>:将排序后的结果转存至指定文件

3.uniq

(1)概念

uniq命令用于报告或者忽略文件中连续的重复行,常与sort命令结合使用。
(2)语法格式

uniq [选项] 参数  ​
cat 文件| uniq 选项

表3 uniq常用选项

选项 功能
c 统计连续重复的行的次数,并且合并重复的行
u 显示仅出现一次的行(包括不连续的重复行)
d 仅显示重复出现的行(必须是连续的重复行)

4.tr

 (1) 概念

常用于对来自标准输入的字符进行替换、压缩和删除

(2)语法格式

tr 选项 参数

表4 tr常用选项

选项 功能
c 保留字符集1的字符,其他的字符(包括换行符\n)用字符集2替换
d 删除所有属于字符集1的字符
s 将重复出现的字符串压缩为一个字符串,用字符集2 替换 字符集1
t 字符集2 替换 字符集1,不加也行

表5 参数 

参数 功能
字符集1 指定要转换或删除的原字符集。当执行转换操作时,
必须使用参数”字符集2“指定转换操作时,必须使用参数”字符集2“指定转换的目标字符集。
但执行删除操作时,不需要参数”字符集2“
字符集2 指定要转换成的目标字符集

5.cut

(1)概念

快速裁剪命令,对字段进行截取和剪裁。

(2)语法格式

格式一:cut [选项] 参数
格式二:cat file | cut [选项] 

表6 cut常用选项

选项 功能
d  指定分隔符(默认分隔符为Tab)
f 按字段进行截取。指定第n个字段
b 以字节为单位进行截取
c 以字符为单位进行截取
-complement 排除所指定的字段
–output-delimiter 更改输出内容的分隔符

6.split

(1)概念

文件拆分,split命令用于在Linux下将大文件拆分为若干小文件。

(2)语法格式

split 选项 参数 原始文件 拆分后文件名前缀

表7 split常用选项 

选项 功能
l 指定行数
b 指定文件大小

7.paste

(1)概念

文件合并,按照字段来进行文件的合并,左右合并。

(2)语法格式

paste   [选项]    文件1     文件2
                                                     表8 paste常用选项

选项 功能
d 用于指定文件的分隔符(默认情况下为制表符"\n")
s 将列和行的内容进行互相交换

二、实验

1. grep

(1)多个匹配只取第一个

Shell脚本攻略:文本三剑客之grep

(2)统计匹配到的行数

Shell脚本攻略:文本三剑客之grep

(3)匹配到的行的后3行也显示出来

Shell脚本攻略:文本三剑客之grep

         匹配到的行的前3行也显示出来

Shell脚本攻略:文本三剑客之grep

        匹配到的行的前后各3行也显示出来

 Shell脚本攻略:文本三剑客之grep

(4)显示包含root或者包含bash 的行

Shell脚本攻略:文本三剑客之grep

(5)匹配整个单词

Shell脚本攻略:文本三剑客之grep

 (6)匹配两个文件中内容相同的部分

Shell脚本攻略:文本三剑客之grep

 (7)递归过滤目录中的文件,但不处理软链接

Shell脚本攻略:文本三剑客之grep

(8)递归目录,但处理软链接

Shell脚本攻略:文本三剑客之grep

 Shell脚本攻略:文本三剑客之grep

(9)将非空行写入到test.txt文件

Shell脚本攻略:文本三剑客之grep

过滤以b开头

Shell脚本攻略:文本三剑客之grep

过滤以/结尾

Shell脚本攻略:文本三剑客之grep

2.sort

(1)按数字大小进行排序

Shell脚本攻略:文本三剑客之grep

(2)倒序排列

Shell脚本攻略:文本三剑客之grep

(3)重复的数据只展示一次,相当于去重

Shell脚本攻略:文本三剑客之grep

 Shell脚本攻略:文本三剑客之grep

(4)把整个passwd的文件,传给test.txt

Shell脚本攻略:文本三剑客之grep

(5)按照源文件的顺序传

Shell脚本攻略:文本三剑客之grep

3.uniq

(1) 只显示出现一次的行

Shell脚本攻略:文本三剑客之grep

Shell脚本攻略:文本三剑客之grep

(2)只显示连续重复的行

Shell脚本攻略:文本三剑客之grep

(3)对重复的数据行计数,并且去重输出

Shell脚本攻略:文本三剑客之grep

(4)只展示不重复的数据行

Shell脚本攻略:文本三剑客之grep

(5)只展示重复的数据行

Shell脚本攻略:文本三剑客之grep

4.tr

(1) 把"." ,替换成冒号

Shell脚本攻略:文本三剑客之grep

(2)大写替换成小写

 Shell脚本攻略:文本三剑客之grep

 (3)保留了ab,替换了c,输出aa

Shell脚本攻略:文本三剑客之grep

 (4)删除ab,打印c

Shell脚本攻略:文本三剑客之grep

 (5)排序输出,压缩空行为一个

Shell脚本攻略:文本三剑客之grep

Shell脚本攻略:文本三剑客之grep

 (6)把":"替换为换行

 Shell脚本攻略:文本三剑客之grep

5.cut

(1)以":"作为分隔符,指定第一个到第三个字段进行输出

Shell脚本攻略:文本三剑客之grep

(2) 指定以":"作为分隔符,但是删除了第二个字段进行输出

Shell脚本攻略:文本三剑客之grep

(3)将分隔符转换为@,进行输出

Shell脚本攻略:文本三剑客之grep

6.split

(1)指定文件大小,不需要大小写

Shell脚本攻略:文本三剑客之grep

(2)指定每2行拆分为1个文件

Shell脚本攻略:文本三剑客之grep

Shell脚本攻略:文本三剑客之grep

7.统计当前主机的连接状态

(1)获取所有tcp信息

Shell脚本攻略:文本三剑客之grep

 (2)取反不显示第一行

Shell脚本攻略:文本三剑客之grep

(3)以空格为分隔符,裁剪第1列

Shell脚本攻略:文本三剑客之grep

(4)排序

Shell脚本攻略:文本三剑客之grep

(5)去重(统计连续重复的行的次数,并且合并重复的行)

 Shell脚本攻略:文本三剑客之grep

8.统计当前连接主机数

(1)获取tcp信息

Shell脚本攻略:文本三剑客之grep

 (2)多空格缩为1个空格

Shell脚本攻略:文本三剑客之grep

 (3)以空格为分隔符,裁剪第4列

Shell脚本攻略:文本三剑客之grep

 (4)排序

Shell脚本攻略:文本三剑客之grep

(5)去重(统计连续重复的行的次数,并且合并重复的行)

Shell脚本攻略:文本三剑客之grep

9.获取信息

(1)获取IP地址

Shell脚本攻略:文本三剑客之grep

 Shell脚本攻略:文本三剑客之grep

Shell脚本攻略:文本三剑客之grep

 (2)获取邮箱

Shell脚本攻略:文本三剑客之grep

Shell脚本攻略:文本三剑客之grep

Shell脚本攻略:文本三剑客之grep

 (3)去空行

Shell脚本攻略:文本三剑客之grep

 Shell脚本攻略:文本三剑客之grep

(4) 匹配1或2

Shell脚本攻略:文本三剑客之grep

 (5)扩展正则表达式

取IP地址

Shell脚本攻略:文本三剑客之grep

取电话

Shell脚本攻略:文本三剑客之grep

取手机号(11位)

Shell脚本攻略:文本三剑客之grep

 其他方法不严谨

Shell脚本攻略:文本三剑客之grep

 取出邮箱

Shell脚本攻略:文本三剑客之grep

Shell脚本攻略:文本三剑客之grep

 转义

Shell脚本攻略:文本三剑客之grep

 Shell脚本攻略:文本三剑客之grep

 文章来源地址https://www.toymoban.com/news/detail-469318.html

到了这里,关于Shell脚本攻略:文本三剑客之grep的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux文本三剑客

    过滤/查找 参数 用法 作用 -i grep -i STRING xxx.txt 从xxx.txt文件查找不区分大小写STRING -w grep -w STRING xxx.txt 精确匹配STRING -e grep -e STRING1 -e STRING2 xxx.txt 查找多个STRING行 -n grep -n STRING xxx.txt 查看STRING 在第几行 -v grep -v STRING xxx.txt 输出不包含STRING的行 -r grep -r STRING DIR/ 查找DIR目录下哪

    2024年02月11日
    浏览(41)
  • linux文本三剑客详解

    awk、grep、sed是linux操作文本的三大利器,合称文本三剑客。 特点: grep——单纯的查找或匹配文本。 sed——编辑匹配到的文本。 awk——格式化文本,对文本进行较复杂格式处理。 首先了解一下正则表达式: 匹配字符  配置次数  位置锚定:定位出现的位置   实例介绍:

    2024年04月16日
    浏览(46)
  • 文本三剑客之 awk

    Linux/UNIX 系统中,awk 是一个功能强大的编辑工具。逐行读取输入文本 以空格作为分割符,多个空格他会自动压缩成一个空格 AWK信息的读入也是逐行指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理. 1按照命令找指定的行  2.找到的行 打印,操作 awk

    2024年02月08日
    浏览(41)
  • Linux文本三剑客---awk

    Linux文本三剑客之一(grep,sed,awk),功能最强大的文本工具。 逐行读取输入的文本内容,默认以空格和tab键作为分隔符。但是多个空格或者tab键的空格,会自动压缩成一个,然后按照指定的模式和条件执行编辑命令 可以在免交互的情况下,实现复杂的文本操作。完成自动化配

    2024年02月07日
    浏览(48)
  • 文本三剑客之~~~sed命令

    sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。 包括读取,执行和显示三个过程 读取:sed从输入流(文件,管道

    2024年02月05日
    浏览(41)
  • Linux:文本三剑客之awk

    awk:是一种 处理文本文件的语言 ,是一个强大的 文本分析工具 。 awk: 逐行读取文本 ,默认以 空格 或 tab键 为分隔符 进行分隔 ,将分隔所得的 各个字段 保存到 内建变量 中,并按模式或者条件执行编辑命令。 1、sed命令常用于一整行的处理,而awk比较 倾向于将一行分成

    2024年02月05日
    浏览(56)
  • 文本三剑客&正则表达式2

    主要是对文件内容按照行的方式进行增删改查 工作流程 sed的工作流程主要包括** 读取、执行和显示 **三个过程 读取 sed从 输入流 (文件、管道、标准输入) 中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space ) 执行 默认情况下,所有的sed命令都在模式空间中

    2024年02月05日
    浏览(46)
  • 文本三剑客之sed编辑器

    Sed是一个强大的文本处理工具,其名称是Stream Editor(流编辑器)的缩写。它被设计用于根据用户定义的规则对文本进行逐行处理和转换。 Sed通过从输入流中逐行读取文本,并根据用户指定的命令来对每一行进行处理 sed的工作原理是 逐行读取 输入文本,并根据用户 指定的命

    2024年02月12日
    浏览(45)
  • 正则表达式和文本三剑客题型练习

    ​ 1、显示/etc/passwd文件中以bash结尾的行; 解释:使用 grep 工具来搜索文件 /etc/passwd 中匹配模式 \\\'bash$\\\' 的行。 bash$ 是一个正则表达式,其中 $ 表示行结尾。因此, \\\'bash$\\\' 匹配以 bash 结尾的行。 运行结果: ​ 2、找出\\\"netstat  -tan”命令的结果中,以‘LISTEN’后跟0或多个空白字

    2024年02月06日
    浏览(43)
  • 快速上手Linux核心命令(五):文本处理三剑客

    目录 前言 正则表达式 第一剑客 grep 第二剑客 sed 第三 剑客 awk 小结 上一篇中已经预告,我们这篇主要说Linux文本处理 三剑客 。他们分别是 grep 、 sed 、 awk 。既然能被业界称为三剑客,可见其在Linux命令中占有举足轻重得地位。所以呢,这里也专门写一篇文章说一说其用法。

    2023年04月25日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包