目录
一、理论
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)多个匹配只取第一个
(2)统计匹配到的行数
(3)匹配到的行的后3行也显示出来
匹配到的行的前3行也显示出来
匹配到的行的前后各3行也显示出来
(4)显示包含root或者包含bash 的行
(5)匹配整个单词
(6)匹配两个文件中内容相同的部分
(7)递归过滤目录中的文件,但不处理软链接
(8)递归目录,但处理软链接
(9)将非空行写入到test.txt文件
过滤以b开头
过滤以/结尾
2.sort
(1)按数字大小进行排序
(2)倒序排列
(3)重复的数据只展示一次,相当于去重
(4)把整个passwd的文件,传给test.txt
(5)按照源文件的顺序传
3.uniq
(1) 只显示出现一次的行
(2)只显示连续重复的行
(3)对重复的数据行计数,并且去重输出
(4)只展示不重复的数据行
(5)只展示重复的数据行
4.tr
(1) 把"." ,替换成冒号
(2)大写替换成小写
(3)保留了ab,替换了c,输出aa
(4)删除ab,打印c
(5)排序输出,压缩空行为一个
(6)把":"替换为换行
5.cut
(1)以":"作为分隔符,指定第一个到第三个字段进行输出
(2) 指定以":"作为分隔符,但是删除了第二个字段进行输出
(3)将分隔符转换为@,进行输出
6.split
(1)指定文件大小,不需要大小写
(2)指定每2行拆分为1个文件
7.统计当前主机的连接状态
(1)获取所有tcp信息
(2)取反不显示第一行
(3)以空格为分隔符,裁剪第1列
(4)排序
(5)去重(统计连续重复的行的次数,并且合并重复的行)
8.统计当前连接主机数
(1)获取tcp信息
(2)多空格缩为1个空格
(3)以空格为分隔符,裁剪第4列
(4)排序
(5)去重(统计连续重复的行的次数,并且合并重复的行)
9.获取信息
(1)获取IP地址
(2)获取邮箱
(3)去空行
(4) 匹配1或2
(5)扩展正则表达式
①取IP地址
②取电话
③取手机号(11位)
④其他方法不严谨
⑤取出邮箱
⑥转义
文章来源:https://www.toymoban.com/news/detail-469318.html
文章来源地址https://www.toymoban.com/news/detail-469318.html
到了这里,关于Shell脚本攻略:文本三剑客之grep的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!