linux三剑客
一. grep —— 文本搜索工具
作用:根据正则表达式或固定字符串,从文件或标准输入中过滤出匹配的行。
基本语法:
grep [选项] PATTERN [文件…]
常用选项:
-i:忽略大小写
r:递归搜索目录中的文件
-v:反向匹配,显示不包含匹配的行
-n:显示匹配行的行号
-l:仅列出包含匹配的文件名
常用场景:
1.搜索日志中的错误信息
2.从配置文件中查找特定设置
3.结合管道过滤其他命令的输出
常见用法:
grep “error” app.log # 在文件中搜索包含 error 的行
grep -i “warning” app.log # 忽略大小写
grep -r “TODO” ./src # 递归搜索目录下所有文件
grep -E “error|fail” log # 使用扩展正则匹配多个模式
二. sed —— 流编辑器
作用:非交互式地对文本进行增、删、改、查等编辑操作,尤其适合脚本中批量处理文本。
基本语法:
sed [选项] ‘命令’ 文件
常用选项:
-e:添加执行的脚本
-i:直接修改文件
-n:取消默认输出
常用命令:
s/regexp/replacement/g:替换匹配的文本
d:删除匹配的行
p:打印匹配的行
常用场景:
1.替换文件中的文本
2.删除空行或指定行
3.在指定行前/后插入内容
在文本中插入或添加内容:
1. 在指定行前插入(i)
1 | sed '3 i\这是插入的内容' file.txt # 在第3行前插入一行 |
2. 在指定行后追加(a)
1 | sed '3 a\这是追加的内容' file.txt # 在第3行后追加一行 |
3. 在文件末尾追加
1 | sed '$ a\最后一行追加的内容' file.txt |
4. 在文件开头插入
1 | sed '1 i\第一行插入的内容' file.txt |
常见用法:
sed ‘s/old/new/g’ file.txt # 将所有 old 替换为 new(打印到终端)
sed -i ‘s/old/new/g’ file.txt # 直接修改文件(-i 参数)
sed ‘/^$/d’ file.txt # 删除空行
sed -n ‘5,10p’ file.txt # 打印第5到10行
三. awk —— 文本处理与报告生成工具
作用:一种强大的编程语言,擅长按列处理结构化文本,支持条件判断、循环、数组和格式化输出。
基本语法:
awk ‘脚本’ 文件
常用选项:
-F:指定字段分隔符
常用内置变量:
1.NR:记录的行号
2.NF:字段的个数
3.$0:当前行的全部文本
4.$n:第n个字段
常用场景:
1.提取日志中的特定字段(如 IP、时间)
2.对数据进行求和、统计
3.将非结构化文本整理成报表
常见用法:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hello World!
