grep、sed、awk号称Linux文本处理三剑客,grep用于文本过滤,sed适合行处理,awk适合列处理,awk以前有两篇文章介绍过,今天介绍一下sed的使用。
一、Sed基本用法
sed是流编辑器,一次处理一行数据,它先把当前一行数据存储在临时缓存区,然后用sed命令处理缓存区内容,处理完成后把缓存区内容输出到屏幕,接着再处理下一行,一直到文件末尾,与awk处理方式是一样的,并且原文件不会被改动。
# sed.txt
千豪是个好人
千豪是个帅哥
千豪要成为一个有钱人
1、文本替换
#将sed.txt文件里的千豪替换为万豪
sed -i 's/千豪/万豪/g' sed.txt
-i:会修改源文件
s: 替换命令
g: 全局替换,如果不加g只替换每一行第一次匹配的模式
#将sed目录下所有文件里千豪替换为万豪
sed -i 's/千豪/万豪/g' `find /root/sed -type f`
2、文本删除
#删除单个文件或目录下所有文件中的空行 ^$匹配空行
sed -i '/^$/d' sed.txt
sed -i '/^$/d' `find /root/sed/ -type f`
#删除符合条件的行
sed -i '/好人/d' sed.txt
# 删除从第2行到末尾
sed -i '2,$d' sed.txt
3、文本追加
#在有钱人后面加准了
sed -i 's/有钱人/& 准了/g' sed.txt
二、Sed在日志截取的应用
当需要排查以前某一个时间段的日志,日