目录
1. sort 命令 - 对文本文件进行排序,默认以字母排序
2. uniq 命令 - 找出或删除文本文件中连续出现的重复行
一、正则表达式
1.概述
由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表表控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。
2.基本正则表达式
2.1 元字符(字符匹配)
匹配符 | 解释 |
---|---|
. | 匹配任意单个字符 |
[] | 匹配指定范围内的任意单个字符,如[ac] [0-9] [a-zA-Z] |
[^] | 匹配指定范围外的任意单个字符,如[^ac] |
\w | 匹配单词构成部分 |
\W | 匹配非单词构成部分 |
\s | 匹配任何空白字符,包括空格、制表符、换页符等 |
\S | 匹配任何非空白字符 |
2.2 表示匹配次数
匹配符 | 解释 |
---|---|
* | 匹配前面的字符任意次,包括0次 |
.* | 匹配任意长度的字符,不包括0次 |
\? | 匹配前面的字符出现0次或1次 |
\+ | 匹配前面的字符出现最少1次 |
\{n\} | 匹配前面的字符n次 |
\{m,n\} | 匹配前面的字符至少m次,至多n次 |
\{,n\} | 匹配前面的字符至多n次 |
\{n,\} | 匹配前面的字符至少n次 |
2.3 位置锚定
匹配符 | 解释 |
---|---|
^ | 行首锚定 |
$ | 行尾锚定 |
^word$ | 匹配内容只有"word"的行 |
^$ | 匹配空行 |
^[[:space:]]*$ | 匹配空白行 |
\< | 词首锚定 |
\b | |
\> | 词尾锚定 |
\b | |
\<word\> | 匹配"word"整个单词 |
\bword\b |
3.扩展正则表达式
匹配符 | 解释 |
---|---|
* | 匹配前面的字符0次或者多次 |
.* | 任意长度的任意字符 |
? | 匹配前面的字符0次或1次 |
+ | 匹配前面的字符至少1次 |
{n,m} | 匹配前面的字符n到m次 |
{m} | 匹配前面的字符m次 |
{n,} | 匹配前面的字符至少n次 |
{,n} | 匹配前面的字符至多n次 |
| | 逻辑或 |
() | 分组:将多个字符捆绑在一起,当作一个整体处理 |
二、文本处理器
1. sort 命令 - 对文本文件进行排序,默认以字母排序
sort "选项" "目标"
常用选项 | 解释 |
---|---|
-b | 忽略行首空白字符 |
-r | 倒序排序 |
-f | 忽略大小写排序 |
-n | 数值大小排序 |
-u | 去除重复行 |
-t | 指定分隔符 |
-k | 指定排序字段 |
-o | 将排序后的结果输出到指定文件 |
2. uniq 命令 - 找出或删除文本文件中连续出现的重复行
uniq "选项" "输入文件" "输出文件"
- #如果不指定输入文件,则会从标准输入获取数
- #如果不指定输出文件,则结果会打印到标准输出
常用选项 | 解释 |
---|---|
-c | 显示每行出现的次数并压缩重复行 |
-u | 只输出不重复的行 |
-d | 只输出重复的行 |
3. tr 命令 - 用于字符转换
tr "选项" "字符集1" "字符集2"
常用选项 | 解释 |
---|---|
-c | 除了指定字符外的所有字符都被替换 |
-d | 删除指定的字符 |
-s | 压缩重复的字符为单个字符 |
4. cut 命令 - 对字段进行截取和剪裁
cat "选项" "参数"
常用选项 | 解释 |
---|---|
-d | 指定分隔符 |
-f | 按字段进行截取 |
-b | 按字节进行截取 |
-c | 按字符进行截取 |
-complement | 排除所指定的字段 |
-output-delimiter | 更改输出内容的分隔符 |
[root@wzx demo]# cat ip.txt
192.168.110.111
20.11.66.98
333.333.333.333
666.6666.6666.6666
[root@wzx demo]# cut -d'.' -f2 ip.txt
168
11
333
6666