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
全局替换:把:改成%