sed工具 介绍

sed工具
地址定界
不给地址:对全文进行处理
单地址:
#:指定行
/pattern/:被此处模式所能够匹配到的每一行
地址范围:
#,#
#,+#
/pat1/,/pat2/
#,/pat1/
~:步进
1~2 奇树行
2~2 偶数行
cat -n passwd >passwd2 新建文件
sep -n ‘/^h//^s/’ passwd
sep 10
sep 10| sed ‘1~2p’
sep 10 |sed -n ‘1~2p
cat passwd2 |sed -n ‘2~2p’
sed工具
编辑命令
d:删除模式空间匹配的行
p:显示模式空间的内容
a [\]texe:在指定行后面追加文本
支持使用\n实现多行追加
i[\]text:在行前面插入文本
c[\]text:替换行为单行或多行文本
w /path/somefile:保存模式匹配的行至指定文件
r /path/somefile:读取指定文件的文本至模式空间中匹配到的行后
=:为模式空间中的行打印行号
!:模式空间中匹配行取反处理
奇数行
sep 10 |sed -n ‘1~2p’
sep 10 |sed ‘2~2d’
sep 10 |sed -n ‘2~2!p’
sed工具
s///:查找替换,支持使用其它分隔符,s@@@,s###
替换标记:
g:行内全局替换
p:显示替换成功的行
w /PATH/TO/SOMEFILE: j将替换成功的行保存至文件中
sed示例
sed ‘2p’ /etc/passwd 打印第二行 别的行业打印
sed -n ‘2p’ /etc/passwd 只打印第二行
sed -n ‘1,4p’ /etc/passwd 打印一到四行
sed -n ‘/root/p’ /etc/passwd 包含root打印
sed -n ‘2,/root/p’ /etc/passwd 从2行开始 第一行开始
sed -n ‘/^$/=’ file 显示空行行号
sed -n -e ‘/^$/p’ -e ‘/^$/=’ file 打印本身 打印行号
sed ‘/root/a\superman’ /etc/passwd 行后
sed ‘/root/i\superman’ /etc/passwd 行前
sed ‘/root/c\superman’ /etc/passwd 代替行
取ID
ifconfig etho | sed -e ‘s/.*inet addr://’ -e ‘s/ B.*//’ -n -e 2p
搜索替代
ifconfig etho |sed -n 2p|sed -e ‘s/.*r://’ -e ‘s/ B.*//’
取基名
echo /etc/sysconfig/network-scripts/ |sed -r ‘s@(^/.*/)([^/]+/?)@\2@’
取目录名
echo /etc/sysconfig/network-scripts/ |sed -r ‘s@(^/.*/)([^/]+/?)1@\1@’
对/etc/fstab非#开头的加注释
sed -r ‘s/(^[^])/#\1/’ etc/fstab
sed -r ‘s/^[^#]/#&/’ /etc/fstab
sed工具
高级编辑命令:
h:把模式空间的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g:从保持空间取出数据覆盖至模式空间
G:从保持空间取出内容追加至模式空间
x:吧模式空间中的内容与保持空间中的内容进行互换
n:读取匹配到的行的下一行覆盖至模式空间
N:读取匹配到的行的下一行追加至模式空间
d:删除模式空间中读的行
D:删除当前模式空间开端至\n的内容(不再传至标准输出),放弃之后的命令,但是对剩余模式空间重新执行sed
sed示例
sed -n ‘n:p’ FILE
sed ‘1!G:h:$!d’ FILE
sed ‘$!N”$!D’ FILE
sed ‘$!d’ FILE
sed ‘G’ FILE
sed ‘g’ FILE
sed ‘/^$/D:’ FILE
sed ‘n:d’ FILE
SED -N ‘1!g:H:$P’ FILE
偶数行
seq 10|sed -n ‘n:p’
倒序
seq 10 |sed ‘!!G:h:$!d’
只保留最后两行
seq 10|sed ‘$!N:$!d’

原创文章,作者:wangqiang,如若转载,请注明出处:http://www.178linux.com/77282

(0)
wangqiangwangqiang
上一篇 2017-05-31
下一篇 2017-05-31

相关推荐

  • Linux终端类型

    在linux系统中,用户经常要使用各种终端和操作系统进行交互,实现用户的任务。Linux各种终端的工作方式基本都通过字符命令行的方式完成,通过终端输入命令完成相应结果。通过who命令可查看用户通过哪些终端方式连接到操作系统。通过tty命令查看当前是通过第几个tty登录的。 Linux系统的终端包含如下几种类型: 1) 物理终端 物理终端,又称控制台…

    Linux干货 2016-10-17
  • 八.Linux博客-2016年8月8日sed、vim

    格式说明: 操作 概念 命令 说明及举例 八.sed、vim sed 文本编辑工具 行编辑器,每次取出一行在内存里处理,处理完成后屏幕打印。完成后再取出一行放到内存里处理,覆盖原来内存中的行,循环。。 sed -n '3d' f1 把文件f1中的第三行删掉并不在屏幕上显示 sed -n&n…

    Linux干货 2016-08-24
  • 登录后经常出现You have new mail in /var/spool/mail/root的提示

    安装完LINUX后经常使用终端远程登录,登录后经常出现You have new mail in /var/spool/mail/root的提示,很是烦人。 这东西到底是做什么用的呢?经过查询才知道这是LINUX的邮年提示功能。LINUX会定时查看LINUX各种状态做汇总,每经过一段时间会把汇总的信息发送的root的邮箱里,以供有需之时查看。 那要怎么去掉这麻…

    系统运维 2017-08-05
  • vim浅谈

            在Linux的世界里,绝大部分的配置文件都是以ASCII的纯文本形式存在的,所以作为一名优秀的Geek,熟练掌握一种文本编辑辑器是非常重要的。         Linux世界中的文本编辑器有很多…

    Linux干货 2015-04-27
  • 马哥教育网络班22期+第12周作业

    week11 1、请描述一次完整的http请求处理过程; 2、httpd所支持的处理模型有哪些,他们的分别使用于哪些环境。 3、源码编译安装LAMP环境(基于wordpress程序),并写出详细的安装、配置、测试过程。 4、建立httpd服务器(基于编译的方式进行),要求:      提供两个基于名称的虚拟主…

    Linux干货 2016-10-31
  • 通过view实现智能DNS

    DNS策略解析最基本的功能是可以智能的判断访问您网站的用户,然后根据不同的访问者把您的域名分别解析成不同的IP地址,然后跟DNS服务器内部的IP表匹配一下,看看用户的类型,然后给用户返回对应的IP地址。

    Linux干货 2017-10-03