一.相关命令
1.uniq
去重,用于统计或者忽略文件中连续出现的重复行,一般和sort结合使用
格式
uniq 选项 参数
cat 文件名 | uniq选项
选项
-c 统计连续重复的次数,并且合并
-u 显示仅出现一次的行(包括不连续的重复行)
-d 仅显示重复出现的行(必须是连续的重复行)
2.tr
用来对标准输入的字符串进行替换,压缩和删除
格式
tr 选项 参数
echo 字符串 | tr 选项
选项
-c 保留字符集1的字符,用其他字符来代替字符集2
-d 删除属于字符集1的字符
-s 将重复出现的字符集压缩成一个,用字符集2替换1
3.cut
截取,对字段进行截取和裁剪
格式
cut 选项 参数
选项
-d 指定分隔符(默认tab)
-f 指定要截取的字段
-b 以字符的单位进行截取
-complement 排除指定的字段
-output-delimmiter 更改输入内容的分隔符
4.cat
合并文件,上下合并
cat 1 2 > 3
5.paste
合并文件,左右合并
paste 1 2 > 3
6.split
拆分文件
选项
-l 按行分割
-b 按文件大小分割
二.正则表达式的格式
1.元字符
. 匹配任意单个字符,可以是一个汉字
() 使用转义符,只表示\(\)
[] 匹配指定范围内的任意单个字符,示例:[dn] [0-9] [] [a-zA-Z] [:alpha:]
[^] 匹配指定范围外的任意单个字符,示例:[^dn] [^a.z]
[:alnum:] 字母和数字 [0-9] [a-z] [0-9] [a-z]
[:alpha:] 代表任何英文大小写字符,亦即 [A-Z], [a-z]
[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z]
[:upper:] 大写字母 [A-Z]
[[:blank:]] 空白字符(空格和制表符)
[:space:] 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比[:blank:]包含的范围广
[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
\w #匹配单词构成部分,等价于[_[:alnum:]]
\W #匹配非单词构成部分,等价于[^_[:alnum:]]
\S #匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\s #匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
2.表示次数
*:任意字符,表示匹配前面的任意字符,0次也算
.*:匹配任意长度的字符,最少要有一次,也就是匹配所有
\?:匹配前面的字符0次或者一次
\+:匹配前面的字符,最少一次
\{n\}:匹配前面的字符等于多少次
\{m,n\}:匹配前面的字符最少m次最多n次
\{,n\}:匹配前面的字符最多n次
\{n,\}:匹配前面的字符最少n次
3.位置锚定
以什么开始^
以什么结尾$
空行^$
"^root$"表示他本身
4.词首词尾锚定
\b