首页 > 技术文章 > liunx_sed

njq666 2019-06-26 14:39 原文

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

 全局替换:把:改成%

 

推荐阅读