目录
一、理论
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.统计当前连接主机数
一、理论
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)去重(统计连续重复的行的次数,并且合并重复的行)





















![[数据集][目标检测]目标检测数据集蜜蜂4073张1类别VOC格式](https://csdnimg.cn/release/blog_editor_html/release2.3.0/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N4P3)

