shell中的文本处理命令和正则表达式

一、文本处理命令

1.1、sort命令

 使用格式:

sort  [选项]  参数

常见选项:

选项 作用
-f 忽略大小写,将小写字母转换成大写字母来比较
-b 忽略每行前面的空格
-n 按照数字排序
-r 反向排序
-u 等同于uniq表示相同的数据仅显示一行
-t 指定字段分隔符
-k 指定排序字段

1.2、uniq命令

使用格式:

uniq [选项]  参数

常见选项:

选项 作用
-c 在数据行前出现的次数

-d

只打印出现的行,重复的行只显示一次
-D 只打印出现的行,重复几次就显示几次
-u 仅显示出现过一次的行

1.3、tr命令

命令格式:

tr [选项]  参数

常用选项:

选项 作用
-d 删除
-s 压缩

 

1.4、cut命令

命令格式

cut  [选项]  参数

常见选项

选项
说明
-d
指明分隔符
-f
选取指定字段

 

二、正则表达式

2.1、正则表达式的含义

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。许多程序设计语言都支持利用正则表达式进行字符串操作。

2.2、基础正则表达式

(支持的工具:grep、egrep、sed、awk)

字符 作用
\ 转义字符,可以把一些特殊的符号转换成普通的符号字符,还可以把一些普通字符转换成特殊功能,例:\!、\n、\$等
^ 表示匹配字符串开始的位置,匹配行首,例: ^a、 ^#
$ 表示匹配字符串末尾的位置,匹配行尾,例: word$、 #$ ;^$表示空行
. 匹配除\n之外的任意的一个字符,例: go.d、g..d
* 匹配前面子表达式0次或者多次,例: goo*d、go.*d
.* 表示任意长度的任一字符
[my] 表示匹配[ ]中包含的任一字符
[^my] 表示匹配除[ ]中包含的任一字符
\{n\} 匹配前面的子表达式n次,例:mo\{2\}y、'[0-9]\{ 2\ }'匹配两位及两位以上数字
\{n,\} 匹配前面的子表达式不少于n次,例: mo\{2,\}y、'[0-9]\{2,\}'匹配两位及两位以上数字
\{n,m\} 匹配前面的子表达式n到m次(m>=n),例: mo\{2,3\}y、'[0-9]\{2,3\}'匹配两位到三位数字

 

2.3、扩展正则表达式

(支持的工具: egrep、awk、grep -E、sed -r)

字符作用
+ 表示匹配前面的子表达式1次以上
? 表示匹配前面的子表达式0或者1次

( )

将括号里的内容看成一个整体
| 以或的方式匹配字符串
posted @ 2022-11-01 16:24  赵哈哈#  阅读(38)  评论(0编辑  收藏  举报