目录
常见元字符(支持的工具:find、grep、egrep、sed和awk)
扩展正则表达式元字符(支持的工具:egrep、awk)grep -E sed -r
常见元字符(支持的工具:find、grep、egrep、sed和awk)
sort命令可针对文本文件的内容,以行为单位来排序
格式:sort [选项] 参数
sort命令默认排序1..9..AaBb...Zz
| -f | 忽略大小写,会将小写字母都转换为大写字母来进行比较 |
| -b | 忽略每行前面的空格 |
| -n | 按照数字进行排序 |
| -r | 反向排序 |
| -u | 等同于uniq,表示相同的数据仅显示一行 |
| -t | 指定字段分隔符,默认使用[Tab]键分隔 |
| -k | 指定排序字段 |
| -o | 将排序后的结果转存至指定文件 |

uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用
格式:uniq [选项] 参数
| -c | 进行计数,并删除文件中重复出现的行 |
| -d | 仅显示连续的重复行 |
| -u | 仅显示出现一次的行 |

常用来对来自标准输入的字符进行替换、压缩和删除。
常用选项
| 选项 | 说明 |
| -c | 保留字符集1的字符,其他的字符用(包括换行符\n)字符集2替换 |
| -d | 删除所有属于字符集1的字符 |
| -s | 将重复出现的字符串压缩为一个字符串;用字符集2 替换 字符集1 |
| -t | 字符集2 替换 字符集1,不加选项同结果 |

echo 的末尾会添加一个换行符


常用参数
| 参数 | 说明 |
| 字符集1 | 指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2” |
| 字符集2 | 指定要转换成的目标字符集 |
显示行中的指定部分,删除文件中指定字段
格式:cut [选项] 参数
| -b | 截取字符串(下标从一开始) |
| -f | 通过指定哪一个字段进行提取。cut命令使用“TAB”作为默认的字段分割符 |
| -d | “TAB”是默认的分隔符,使用此选项可更改为其他的分隔符 |
| - -complement | 用于排除所指定的字段 |
| - -output-delimiter | 更改输出内容的分隔符 |

split命令可以将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件
格式:split [参数] [切割文件][文件名]
-l 指定行分割
-b 指定大小分割(字节)
paste单词意思是粘贴。该命令主要用来将多个文件的内容合并,与cut命令完成的功能刚好相反(默认制表符分隔,-d指定合并后的分割符)
-s 行列互换 paste -s
-d 指定合并后的分割符 paste -d ':' c d
正则表达式,又称正规表达式、常规表达式
使用字符串来描述、匹配一系列符合某个规则的字符串
正则表达式组成
普通字符包括大小写字母、数字、标点符号及一些其他符号。
元字符是指在正则表达式中具有特殊意义的专用字符
| \ | 转义字符,用于取消特殊符号含义,例如\! \n |
| ^ | 匹配字符串开始的位置 |
| $ | 匹配字符串结束的位置 |
| . | 匹配除\n之外的任意一个字符:例如 go.d |
| * | 匹配前面子表达式0次或n次 |
| [list] | 匹配list列表中的一个字符[a-z] [0-9] [abc] |
| [^list] | 匹配任意非List列表中的字符 [^0-9] [^A-z0-9] |
| \{n\} | 匹配前面的子表达式n次 go\{2\}d '[0-9]\{2,\}'匹配两位数字 |
| \{n,\} | 匹配前面的子表达式不少于n次 匹配两位及两位以上的数字 |
| \{n,m\} | 匹配前面子表达式n到m次 '[0-9]\{2,3\}'匹配两位到三位数字 |
| \w | 匹配包括下划线的任何单词字符 "[A-Za-z0-9]"匹配任何非单词字符等价于\W |
| \d | 匹配一个数字字符 [^0-9]匹配一个非数字字符 等价于\D |
| \s | 空白符 \S非空白符 |






只匹配括号中的单个字符

匹配前面字符o的次数

匹配o2-3次


| + | 匹配前面子表达式一次以上 go+d god good |
| ? | 0次或0次以上 go?d gd god good |
| () | 将括号内作为一个整体 g(oo)d good gooood |
| | | 或 g(oo|la)d 将匹配good glad |
go*d可以没有o go+d至少要一个
加号和星号的区别在于加号是匹配一次及以上,星号是匹配零次或多次

问号匹配前面o零次或者一次

括号里面的字符以整体匹配,加上加号,匹配里面字符的整数倍


区号025开头,号码与区间号可以是空格、-、没有,号码必须是5或8开头的八位数
接替过程
区号025开头:^(025)
号码与区间号可以是空格、-、没有,:[ -]?
号码必须是5或8开头的八位数:[58][0-9]{7}$
用户名@子域名.[二级域名].顶级域
用户名@:长度要求6-18位。任意大小写英文,除了数字,除了@符号和空格以外的其他任意符号字符,开头只能是_或者字母
^[A-Za-z_][^@ ]{5,17}@
子域名.[二级域名]:长度任意,符号只能包含-_·
[A-Za-z0-9\-\._]+
.顶级域名:长度在2-5,任意大小写英文
\.[A-Za-z]{2,5}$