Linux常用命令:文本处理
一、grep
1.用法
根据正则表达式查询内容,按行返回匹配结果
1 | # 语法 |
2.options
1 | # -c --count |
1 | # -i --ignore-case |
1 | # -d, --directories=ACTION |
1 | # -A num 显示所有匹配行以及其后num行 |
1 | # 用于匹配的PATTERNS的规则 |
二、find
1.用法
find用于检索文件的属性,如文件名、文件类型、文件大小等(相对的grep是对文件内容进行检索)
1 | # 递归查找path路径下符合要求的文件 |
2.option
1 | # -regex 使用正则表达式检索 |
1 | # -name 按名称查找文件 |
1 | # -type |
1 | # -perm 按rwx权限检索 |
- 按大小检索(+/-表示范围)
1 | # -size 按大小检索 |
- 按时间检索(+/-表示范围)
1 | # -ctime 访问时间(上次文件打开) |
3.复杂操作示例
1 | # 查找并删除,删除前需询问 |
三、awk
1.用法
awk用来处理文本,将文本按照指定的格式输出。其中包含了变量,循环以及数组
1 | awk [选项] 'awk脚本' [处理文本路径] |
2.awk脚本
参考: 18个awk的经典实战案例 | 骏马金龙 (junmajinlong.com)
脚本使用方法
1 | # awk脚本,规则如下 |
输入控制
1 | # options选项设置行内字段分隔符,默认为逗号, |
1 | # awk脚本内设置分隔符 |
输出控制
1 | # 指定位置输出字段 |
1 | # 指定字段内容输出范围 |
1 | # 格式化输出print与printf |
1 | # 格式化文本 |
逻辑控制
1 | # 正则表达式匹配行 |
常用awk函数
1 | # 将 $0 设置为当前输入文件中的下一个输入记录 |
1 | # 字符串 s 的长度(如果没有arg,则为 $0) |
去重与统计功能
1 | # 去重功能 |
1 | # 统计功能 |
筛选功能
1 | # 读取特定段落 |
1 | # 筛选时间范围内日志 |
行处理与列处理功能
1 | # 行列转换awk脚本 |
四、sed
五、组合使用例
1.查询容器名并用作后续指令
1 | #!/bin/bash |
2.删除没有error级别日志的日志文件
1 | $ grep -r "error" . -LZ | xargs -0 rm |
3.
1 | # 打印passwd中第一列内容,即所有用户名 |