sed的使用和基本操作命令

1  使用sed格式:

1.1  命令行格式:

sed 参数 命令输入的文件  (参数有-e和-n,-e一般用于调用两个命令,-n一般用于匹配p的命令意思是打印相关的行)   (命令由行定位既正则+sed命令即操作)

1.2  脚本格式:

sed  -f参数 脚本文件   输入的文件

2  查看打印的行号:

nl  文件  |  sed -n  要打印的行

3  Sed的行定位:

3.  1定位一行:x行号

如 sed  -n  ’要打印的行数如10p’  文件   最后是打印出了第十行

/pattern/正则

如sed -n  ’/要打印的行的开头表达式如mooc/p’  文件   最后是打印出了你想要打印的行

3.2  定位多行:x,y都是行号,意思是从x行到y行,

如nl 文件  |  sed -n  ’   要打印的行如10,20p‘         最后是打印出了第十行到第二十行

4  /pattern/,x

如nl 文件  | sed  -n  ’要打印的第一行的开头表达式如mooc/,/要打印的最后一行的开头表达式如root/p’   最后是打印出了你想打印的第mooc行到root行

5  x,y! 反向定位多行

5.1  如nl  文件  |  sed -n  ’不打印的行数如10!p’  最后是打印出了除了第十行的所有行

5.2  如nl  文件 |  sed  -n  ’不打印的第几行如10,到不打印的第几行如20!p’ 最后是打印出除了第十行到第二十行的所有行

6  定位间隔几行:first-step  从第几行跳到第几行

如nl 文件  | sed  -n  ’第几行跳到第几行如1 ~2p’   最后是从第一行跳到第三行的顺序打印出全部

7  - p打印相关的行如(一定要配合-n使用)

8  - a新增行

8.1  nl  文件 |  sed  ’从第几行后面要增加的内容如5a////////’  结果是在第五行的后面增加了一行///////////

8.2  nl  文件 |  sed  ’从第几行到第几行后面要增加的内容如1,5a》》》》’  结果是从第一行到第五行每一行后面都增加一行》》》》

9  -  i插入行

9.1  nl  文件 |  sed  ’从第几行前面插入内容如8i#######’  结果是从第八行前面插入一行#########

9.2  nl   文件 |  sed   ’从第几行到第几行前面要插入的内容如1,3i&&&&’   结果是从第一行到第三行每一行前面都插入一行&&&&

10  -c替代行

10.1  nl  文件 |  sed  ’你要替换哪一行以及替换的内容如[email protected]@@’  结果是你把第二行替换成了一行@@@

10.2  nl  文件 |  sed  ’你要替换从第几行到第几行以及替换的内容如1,6c¥¥¥’  结果是你从第一行到第六行都替换成了一行¥¥¥    (这里的替换只会把你要替换的第几行到第几行替换成一行)

11  -d删除行

nl  文件  |  sed  ’你要删除的那一行如/mooc/d’   结果是你删除了以mooc为开头表达式的那一行

案例一:优化服务器配置  在ssh的配置文件加入相应的文本

sed  ’$a\要空的空格要增加的第一行内容 \n要空的空格要增加的第二行内容’ 配置文件名

案例二:文本的处理  删除文本中的空行

sed  ’/^$/d’ 文本名

案例三:服务器日志处理  服务器log中找出error报错

sed  -n  ’/要找的内容如Error/p’ 日志名

12  -s替换  替换文件中的内容

sed  ’s/替换前的内容/替换后的内容/’ 文件名 替换内容时会替换所有符合的内容,而替换字符时只会替换第一个符合的字符所以后面要加上-g

13  -g全局替换的标志

替换文件中的字符  sed  ’s/替换前的字符/替换后的字符/g’  文件名

时间: 2024-10-24 23:17:35

sed的使用和基本操作命令的相关文章

sed很强大的文本操作命令

sed对文本的处理很强大,并且sed非常小,参数少,容易掌握,他的操作方式根awk有点像.sed按顺序逐行读取文件.然后,它执行为 该行指定的所有操作,并在完成请求的修改之后的内容显示出来,也可以存放到文件中.完成了一行上的所有操作之后,它读取文件的下一行,然后重复该过程直到 它完成该文件.在这里要注意一点,源文件(默认地)保持不被修改.sed 默认读取整个文件并对其中的每一行进行修改.说白了就是一行一行的操作.我用sed主要就是用里面的替换功能,真的很强大.下面以实例,详细的说一下,先 从替换

sed 操作命令

sed介绍 grep 只能过滤文件内容,sed既能过滤文件内容同时还能对文件内容进行修改.  sed 算是一种编程语言,它有自己的固定语法. sed是一种行编辑器,sed会在内存中开辟一块独立的空间(模式空间),每次读取磁盘文件中的一行调入内存空间并且默认自动打印到屏幕 sed基本语法 1. sed  [option]   'script'  file script : "地址命令addresscmd" cmd: p   d  a  i   c  w r  = sed命令实例 1.se

三剑客之 sed详解

    sed 作者:Jack.X 归档:学习笔记 2017/4/13 三剑客之sed 第1章 sed详解: 1.1 sed介绍: sed是linux命令中三剑客的老二,sed命令是操作.过滤和转换文本内容的强大工具,常用功能有增删改查(增加,删除,修改,查询).其中查询的功能中最常用的两大功能是过滤(过滤指定字符串),取行(取出指定行). 我先在用的sed版本是GNU开源版本的,实验环境是Centos6.8系统,内核是2.6.32-642.el6.x86_64 [[email protecte

Centos Linux 常用shell操作命令

文件处理命令:ls 功能描述:显示目录文件 命令英文原意:list 命令所在路径:/bin/ls 执行权限:所有用户 语法: ls 选项[-ald]  [文件或目录] -a 显示所有文件,包括隐藏文件 -l 详细信息显示 -d 查看目录属性 $ ls –a > dir.txt //将ls –a命令执行结果输出到dir.txt文件. $ ls –a >> dir.txt //将ls –a命令执行结果附加到dir.txt文件之后. 文件处理命令:cd 功能描述:切换目录 命令英文原意:cha

【Linux命令】--(1)文件目录操作命令

文件目录操作命令+++++文件目录操作命令+++++++++++++++++++++++++++++++ls cd pwd mkdir rm rmdir mv cp touch cat nl more less head tail+++++++++++++++++++++++++++++++=============ls==============ls [选项] [目录] 查看目录信息参考:http://www.cnblogs.com/peida/archive/2012/10/23/27348

sed实例

sed: Stream Editor 行编辑器 逐行编辑 将每行内容读入到内存中,在内存中进行处理,将结果返回给屏幕 ,此段内存空间称为模式空间 默认不编辑原文件,仅对模式空间的数据进行处理,处理结束后,将模式空间的内容显示到屏幕 sed命令的使用格式 sed [options] 'AddressCommand' file ... Address:表示对哪些行进行处理 Command:操作命令 options: -n:不再显示模式空间中的内容(默认显示) -i: 直接修改原文件 -e 'Addr

sed详解

之前,写过一篇grep正则表达式的文章.这篇记录下与grep命令具有类似相同功能的两个命令,sed和awk.grep是文本搜索工具,sed是非交互式流编辑器,awk是一种文本格式化工具. sed是一个非交互式的流编辑器.所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出:而所谓流编辑器,是指sed每次只从文件(或输入)读入一行,然后对该行进行指定的处理,并将结果输出到屏幕(除非取消了屏幕输出又没有显式地使用打印命令),接着读入下一行.整个文件像流水一样被逐行处

一种监控所有账户登陆及操作命令的方法

公司师兄教的一种方法: 将如下脚本,加入到/etc/profile最后即可 PS1="`whoami`@`hostname`:"'[$PWD]' history USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` if [ "$USER_IP" = "" ] then USER_IP=`hostname` fi if [ ! -d /tmp/hist

linux命令:sed

   sed命令简介: 文本编辑器,流编辑器,行编辑器.默认不编辑原文件, 仅对模式空间中的数据做处理: 而后处理结束后,将模式空间打印至屏幕: 1.命令格式: sed [option]'addresscommand' file ...对这个或这些文件的某一段进行编辑 Address:(表示操作文本范围) 1.StartLine,EndLine 比如1,100 $:最后一行 2./RegExp/ 使用正则表达式来匹配模式 必须使用// /^root/ 3./pattern1/,/pattern2