liunx_sed
grep- 查找
sed- 行编辑器
awk- 文本处理工具
sed 介绍
1、一堆文本要分析
2、一堆乱数据要处理
3、分析服务器日志
sed 功能
处理文本文件
分析日志文件
修改配置文件
sed 处理流程
文本或管道输入—读入一行到模式空间(临时缓冲区)—sed 命令进行处理,处理后输出到屏幕上。
sed 的原则
1、sed 一次处理一行内容。
2、sed 不改变文件内容 - 默认不能改(除非重定向 ||-i 参数)。
3、sed 可以对所有行进行操作,也可以根据正则选择选定行。
sed 格式
命令行格式:
sed [options] 'command' file
options : -e 、-n、-i
command :行定位 = 通过行号(正则)+ sed 命令操作
脚本格式:
sed -f scriptfile file
讲解命令格式
mkdir liunx-command
cp /etc/passwd /root/liunx-command
sed 'p' passwd 每行打印了 2 行
sed -n 'p' passwd 忽略默认输出
行定位
定位一行
nl passwd|sed -n '10p' 显示行号打印第 10 行
定位多行 nl -b a passwd|sed -n '6,10p'
正则表达式定位 nl -b a passwd|sed -n '/root/,/dbus/p'
行号 + 正则表达式
不选哪行
隔几行打印
行后面增加 =====
行前面增加 ====
第二行被替换掉
第二行和第五行被替换
第二行和第五行被删除
修改环境变量—添加环境变量最后一行添加(用到 n 和 i)
默认不修改文件的
sed '$a export TOMCAT_HOME=XXXXX\nexport PATH=$PATH:$TOMCAT_HOME' profile
$a 最后一行添加
带空格的添加
真正的修改 -i 参数或者重定向(同一个文件不能用覆盖用追加方式)
sed -i '$a\ export TOMCAT_HOME=XXXXX\n export PATH=$PATH:$TOMCAT_HOME' profile
cat profile
删除空白行 sed '/^$/d' profile 正则:^ 开始 $ 结束 /d 删除
文本内追加 sed '$a\ export TOMCAT_HOME=XXXX\n exprot PATH=$PATH:$ningjiaqi' profile >> profile
追加内容 _ 但是:sed -n '$a\ export TOMCAT_HOME=XXXX\n exprot PATH=$PATH:$bujundi' profile >> profile
查询出
替换操作:s 分隔符:/ 全局替换:g
sed 's/nologin/login/' passwd 把 passwd 文件里的 nolog 替换成 login
sed 's/:/%/g' passwd
全局替换:把:改成 %