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

 全局替换:把:改成 %