Shell脚本之文本处理三剑客——grep

一、grep命令(过滤)

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

作用:过滤文本内容,针对行进行处理

 常用选项:

-i 默认,忽略大小写
-n 显示匹配的行号
-c 只统计匹配的行数
-v 取反,显示搜索之外
-m 多个匹配,可以限定显示的行数
-o 仅显示匹配到的字符串
-A 后跟数字,表示匹配到内容行后,在向下显示几行
-B 后跟数字,表示匹配到内容行后,再向上显示几行
-C 后跟数字,表示匹配到内容行后,在现实上下几行
-e 逻辑“或”,可以匹配多个条件,实现多个选项间的逻辑关系,可以跟多个条件
-w 表示匹配整个单词
-E 表示使用扩展正则表达式,egrep,也可以使用扩展正则表达式
-f 对2个文件内容进行匹配,打印匹配出2个文件相同的内容
-r 递归目录,不处理软连接
-R 递归目录,处理软连接

二、sort(排序)

作用:以行为单位,对文件内容进行排序,也可以根据不同的数据类型进行排序

格式一:
sort 选项参数
格式二:
cat 文件名 | sort 选项

常用选项:

-f 忽略大小写,默认把大写排在前面
-b 忽略每行前面的空行
-n 按照数字进行排序
-r 反向排序
-u 相同的数据,只显示一行,去重
-o 输出文件名,将排序后的结果转存到指定的文件

注:字母和数字最好不要混在一起排序

三、uniq(去重) 

作用:用于报告或者忽略文件中连续出现的重复行,经常与sort命令结合使用

格式一:
uniq 选项 参数
格式二:
cat 文件名 | uniq 选项

常用选项:

-c 统计连续重复的行的次数,并且合并重复的行,并打印
-u 显示仅出现一次的行,包括不连续的重复行
-d 仅显示重复出现的行,必须是连续的重复行

四、tr(替换/压缩/删除)

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

常用选项:

-c 保留字符集1的字符,用字符集2来替换其它的字符
-d 删除指定字符集
-s 把重复出现的字符串压缩成一个字符串,也可替换
-t 默认替换,可加可不加

例:不加选项,默认就是替换,将字符集1替换成字符集2

 " ":表示使用正则表达式

 五、cut(截取,类似awk)

作用:对字段进行截取,裁剪

格式一:
cut 选项 参数
格式二:
cat 文件名 | cut 选项

常用选项:
 

-d 指定分隔符,默认分隔符是tab,不是空格
-f 按字段进行截取,指定要截取第几字段
-complement 删除指定字段
-output-delimiter 更改输出内容的分隔符

例:指定打印出/etc/passwd下第1,3列

方式一:Shell脚本之文本处理三剑客——grep_第1张图片

 方式二:Shell脚本之文本处理三剑客——grep_第2张图片

 六、split(文件拆分)

作用:将大文件拆分成若干个小文件

常用格式:

-l 指定行数拆分
-b 指定文件大小拆分
格式一:指定行数拆分
split -l 指定行数 原始文件 拆分后文件名前缀

格式二:指定文件大小拆分
split -b 指定文件大小 原始文件 拆分后文件名前缀

注:后面一定要写上“拆分后文件名前缀”

七、paste(文件合并)

paste:左右合并文件

cat:上下合并文件

八、统计当前主机连接状态

1.ss格式

ss -antp | grep -v "^State" | cut -d " " -f 1 | sort | uniq -c

2.netstat格式

netstat -antp | tr -s " " | grep "tcp"| cut -d " " -f 6 | sort |uniq -c

 九、统计当前主机的连接数

1.ss格式

ss -nt | tr -s " " | cut -d " " -f 4

Shell脚本之文本处理三剑客——grep_第3张图片

2.netstat格式

netstat -nt | awk '{print $4}'

Shell脚本之文本处理三剑客——grep_第4张图片

你可能感兴趣的:(linux,运维,服务器)