Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法

目录

1.sed命令--编辑、过滤文本,非交互式,方便再脚本中使用

2.awk命令,对文本、数据进行过滤、统计、截取处理

2.1 awk命令脚本基本结构体

 2.2 用正则表达式进行匹配

 2.3 关系表达式、运算符表达式

2.4 模式匹配表达式 

2.5 awk 命令内部变量

 2.6awk命令的流程控制

 3.grep命令-根据某个规则查找文本

4.sort命令

5.uniq命令

6.wc命令


linux文本三剑客:grep(文本过滤)、文本截取(awk)、sed(文本替换)

1.sed命令--编辑、过滤文本,非交互式,方便再脚本中使用

sed的常用命令选项:

-n:只显示匹配处理的行(否则会输出所有)

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第1张图片

 -e:执行多个编辑命令时(一般用;代替)

 -i:直接在文件中进行修改,而不输出到屏幕

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第2张图片

-r:支持扩展正则表达式

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第3张图片

-f:从脚本文件中读取内容并执行(文件中的编辑命令每行一个,不用;隔开)

sed的常用编辑命令:

p:打印匹配行 print

sed -n ‘/模式/p’  输入文件 这里的模式可以是正则表达式也可以是精确字符\

d:删除指定行 delete

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第4张图片

a:在匹配行后面追加 append

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第5张图片

 i:在匹配行前面插入 insert

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第6张图片

 c:整行替换

r:将文件的内容读入  read

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第7张图片

w:将文本写入文件  write

s:字符串替换(匹配正则表达式)substitution

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第8张图片

 = :输出行号

n: 用新的命令去处理下一行

2.awk命令,对文本、数据进行过滤、统计、截取处理

常用的命令选项:
-F  指定分隔符 ,默认空白符

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第9张图片
-v  var=value  将外部变量传递给awk

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第10张图片
-f  scripfile 从脚本文件中读取awk命令

2.1 awk命令脚本基本结构体

由三大块组成:  'BEGIN{语句块} /模式/{动作} END{ 语句块}' ,BEGIN、模式通用语句块、END都是可选模块,可以不写。

BEGIN模块:在文本处理之前执行,并且只会执行一次。用于定义一些变量和输出一些内容

通用语句模块:读取文本的每一行交给这个语句块。

END模块:在读取完所有的行之后执行,统计、分析结果这些信息在END之中完成,只会执行一次。

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第11张图片

 2.2 用正则表达式进行匹配

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第12张图片

 2.3 关系表达式、运算符表达式

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第13张图片

2.4 模式匹配表达式 

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第14张图片

2.5 awk 命令内部变量

NF:每行的字段数 

NR:当前处理的行号

FS:指定当前的分隔符,默认是空格字符,相当于-F

OFS:指定当前输出的分隔符,默认是空格字符。

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第15张图片

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第16张图片

 2.6awk命令的流程控制

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第17张图片

 统计每个班每个科目的平均分

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第18张图片

 3.grep命令-根据某个规则查找文本

grep的三兄弟

命令 是否支持正则 支持的正则类型
grep 支持 基本正则表达式
egrep 支持 拓展正则表达式
fgrep 不支持

常用的命令选项:

-a :不要忽略二进制数据

-A :显示该行以及之后的行after

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第19张图片

-B :显示改行以前的几行before

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第20张图片

-c :计算符合样式的列数

-C:除显示符合的行之外,还要显示之前和之后的行

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第21张图片

-d :如果要查找的是目录而不是文件时,必须指定这个参数

-E:将样式作为延申的普通标准来使用,grep -E=egrep

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第22张图片

基本正则: ^  $  .  [  ]  

拓展正则:(  )  {  }  ?  +  |

-F :将样式是为固定字符串的列表 grep -F = fgrep

(fgrep的用途:因为他不支持正则,所以当我们搜索的字符换内包含了很多特殊字符,而这些特殊字符恰好是正则表达式的预留字符时,我们就可以使用fgrep来避免繁琐的转义了)、

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第23张图片

-f :指定规则文件,其内容含有一个或者多个样式,让grep查找符合体哦阿健的文件内容

-i :忽略大小写

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第24张图片

-n :显示符合条件的行之前显示行号

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第25张图片

-o :只显示符合匹配条件的那一部分

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第26张图片

-v :显示不包含匹配文本的所有行

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第27张图片

-l :列出文件中符合指定的样式的文件名称

例: 输出12 135 126 110 99 89 8 192中小于126的数

例:12.1.1.2  174.23.34.56 121.100.9.8 192.168.99.1 

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第28张图片

4.sort命令

以行为单位,每行作为一个字符串

按照字符串的比较规则,首字母开始一次向后按照ascii码值进行比较

结果默认升序输出

常用命令选项:

-b :忽略每行前面开始的空格字符

-c :检查文件是都按照顺序排序

-d :排序时,处理英文字母、数字及空格字符外,忽略其他的字符

-f :排序时,将小写字母视为大写字母

-m :讲几个排序好的文件进行合并

-n :按照数值的大小进行排序

-u :输出的结果去重

-o :将排序后的结果存入指定的文件

-r :以相反的顺序来排序

-k :指定列进行排序

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第29张图片

输出scwebsite.log文件中 ip访问量的前5名

5.uniq命令

uniq命令用于检查及删除文本中重复出现的行或列,一般与sort命令结合使用

-c :在每列旁边显示该行重复出现的次数

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第30张图片

-d :仅显示重复出现的行列

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第31张图片

-f :忽略比较指定的栏位

-u :仅显示出现一次的行列

-w :指定要比较的字符

6.wc命令

计算文件的byte数、字数或者是列数

-c :只显示byte数

-l :显示行数

-w :只显示字数

Linux文本操作命令(awk、grep、sed、sort、uniq、wc)常用用法_第32张图片

你可能感兴趣的:(Linux,正则表达式,linux,运维)