Shell 正则及其命令

目录

一、sort

 二、uniq

 三、tr

  四、cut

 五、paste

 六、正则表达式  

1.元字符

 2.次数

3.扩展


一、sort

sort排序

基本用法:
sort   选项   文件
默认以字符排序(a b c d),如果第一个字母相同,比较第二个,以此类推

 Shell 正则及其命令_第1张图片

-t指定分隔符
-k指定需要排序的列
-n以数字形式排序
-r反向排序
-u去重

Shell 正则及其命令_第2张图片                           Shell 正则及其命令_第3张图片

 二、uniq

uniq  去重

uniq  选项...  文件…....

基本功能:只能将连续的重复去掉

-c  统计字符出现的次数

后面是字符数字前面是出现的次数

-d 只显示有连续重复的行

-u 只显示出现1次的行(2个及2个以上不显示)

 

Shell 正则及其命令_第4张图片Shell 正则及其命令_第5张图片

 三、tr

基本功能是转换

只要出现 d e f 就转换成 2 6 8

当转换数值不足时,一直转换成最后一个

实际应用:将文件中的所有小写转换成大写

-d删除匹配到的字符

-s 压缩 将连续的数字8压缩成1个数字8

-c反向取值

 Shell 正则及其命令_第6张图片

 

  四、cut

cut 切片 提取需要的列

cut [选项]  [文件]

-d 指明分隔符

-f 指明需要的列数

Shell 正则及其命令_第7张图片

实际应用

Shell 正则及其命令_第8张图片

 Shell 正则及其命令_第9张图片

Shell 正则及其命令_第10张图片

wc

wc 选项  目标文件 
统计列数,wc本身就是参数  word
-l: 统计行数
-w: 统计单词个数
-C: 统计字节数
注意空行和换行符

 五、paste

-d 指定分隔符

Shell 正则及其命令_第11张图片Shell 正则及其命令_第12张图片

 综合应用

cat nginx.access.log-2021013 |cut -d" " -f1

 Shell 正则及其命令_第13张图片Shell 正则及其命令_第14张图片

cat nginx.access.log-2021013 |cut -d" " -f1|sort

 Shell 正则及其命令_第15张图片

cat nginx.access.log-2021013 |cut -d" " -f1|sort -n|uniq -c

Shell 正则及其命令_第16张图片

cat nginx.access.log-2021013 |cut -d" " -f1|sort -n|uniq -c|sort -nr

Shell 正则及其命令_第17张图片

cat nginx.access.log-2021013 |cut -d" " -f1|sort -n|uniq -c|sort -nr|head

Shell 正则及其命令_第18张图片

 cat nginx.access.log-2021013 |awk '{print $1}'|sort -n|uniq -c|sort -nr|head

Shell 正则及其命令_第19张图片

 六、正则表达式  

         REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。
        正则表达式被很多程序和开发语言所广泛支持: vim, les,grep,sed,awk, nginx,mysql等,主要用来匹配字符串(命令结果,文本内容),通配符匹配文件(而且是已存在的文件)

        find 命令支持通配符   vim 命令支持正则表达式
        基本正则表达式
        扩展正则表达式

1.元字符

.       匹配任意单个字符,可以是一个汉字
[]      匹配指定范围内的任意单个字符
[^]    匹配指定范围外的任意单个字符
如果 . 写在[ ]就是 . 不需要转义     转义 .  \.  代表转义

Shell 正则及其命令_第20张图片

Shell 正则及其命令_第21张图片

 

 Shell 正则及其命令_第22张图片

 

Shell 正则及其命令_第23张图片

 Shell 正则及其命令_第24张图片

 Shell 正则及其命令_第25张图片

 2.次数

(1) *           匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
(2) .*          任意长度的任意字符
(3) \?          匹配其前面的字符出现0次或1次,即:可有可无
(4) \+          匹配其前面的字符出现最少1次,即:肯定有且>=1次
(5) \{n\}       匹配前面的字符n次(精确匹配)
(6) \{m,n\}   匹配前面的字符至少m次,至多n次
(7) \{,n\}      匹配前面的字符至多n次,<=n
(8) \{n,\}      匹配前面的字符至少n次

Shell 正则及其命令_第26张图片

 

 

3.扩展

*         匹配前面字符任意次
?        0或1次
+        1次或多次
{n}      匹配n次
{m,n}  至少m,至多n次
{,n}     匹配前面的字符至多n次, <=n,n可以为0
{n,}     匹配前面的字符至少n次, >=n,n可以为0

实际应用

你可能感兴趣的:(Shell)