Linux 文本处理工具(awk、sed、grep)
本文档介绍 Linux 中最常用的三个文本处理工具:awk、sed 和 grep。
1. grep 命令
grep(Global Regular Expression Print)用于在文本中搜索匹配的行。
1.1 基本用法
# 基本搜索
grep "pattern" file.txt # 搜索文件中包含 pattern 的行
grep "error" /var/log/syslog # 搜索日志文件中的错误
# 常用选项
grep -i "pattern" file.txt # 忽略大小写
grep -v "pattern" file.txt # 显示不匹配的行
grep -n "pattern" file.txt # 显示行号
grep -r "pattern" directory/ # 递归搜索目录
grep -l "pattern" *.txt # 只显示匹配的文件名
1.2 高级用法
# 使用正则表达式
grep "^start" file.txt # 匹配以 start 开头的行
grep "end$" file.txt # 匹配以 end 结尾的行
grep "[0-9]{3}" file.txt # 匹配包含三个连续数字的行
# 组合使用
grep -E "pattern1|pattern2" file.txt # 匹配多个模式
grep -A 2 "pattern" file.txt # 显示匹配行及后两行
grep -B 2 "pattern" file.txt # 显示匹配行及前两行
grep -C 2 "pattern" file.txt # 显示匹配行及前后两行
2. sed 命令
sed(Stream Editor)是一个流编辑器,用于文本替换、删除、插入等操作。
2.1 基本替换
# 基本替换语法
sed 's/old/new/' file.txt # 替换每行第一次匹配
sed 's/old/new/g' file.txt # 替换所有匹配
sed -i 's/old/new/g' file.txt # 直接修改文件
# 指定行号操作
sed '3s/old/new/' file.txt # 只替换第3行
sed '1,5s/old/new/' file.txt # 替换1-5行