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 21:00
下一篇 2017-05-31 22:54

相关推荐

  • linux开机启动流程

    linux开机启动流程:   一、BIOS 加电自检 当你按电源开关开机时,电脑会首先去启动BIOS(基本输入输出系统),BIOS一般是集成在主板上的. BIOS 的工作 1.检测连接硬件,比如显卡,内存,磁盘等等,检测的目的是以后把这些设备信息提供给操作系统 2.寻找启动磁盘,每一种BIOS都会有开机启动菜…

    Linux干货 2016-09-14
  • Linux文件查找命令详解

    Linux中在文件系统上查找符合条件的文件,实现工具有locate和find locate: 1.它是依赖于事先索引构建好的数据库进行查找的。更新它的数据库有两种方式,一种是系统定期自动更新,另一种是执行命令updatedb手动更新数据库。 注意:索引构建过程需要遍历整个根文件系统,极消耗资源 2.它的工作特性: 1.因为是基于数据库实现的,所以查找速度快(…

    Linux干货 2017-04-10
  • 你的数据根本不够大,别老扯什么Hadoop了

    本文原名“Don’t use Hadoop when your data isn’t that big ”,出自有着多年从业经验的数据科学家Chris Stucchio,纽约大学柯朗研究所博士后,搞过高频交易平台,当过创业公司的CTO,更习惯称自己为统计学者。对了,他现在自己创业,提供数据分析、推荐优化咨询服务,他的邮件是:stucchio@gmail.co…

    Linux干货 2015-04-04
  • 3.26第一篇博客

    1.安装VNC viewer (VNC是一款远程控制软件,即便版本不一样也可以互通) 安装好后,进入界面,可以直接在上方数据栏里输入服务器端的主机名或IP地址,即可建立连接。 二.安装VMware (VMware是一款可以控制和管理虚拟化的IT环境 可以跑各种的操作系统) 1.首先在内网ftp://172.16.0.1/pub/tools找到VMware版本…

    2018-03-26
  • 破坏grub实验之一

    1、删除grub stage1阶段 [root@centos6 ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1 1+0 records in 1+0 records out 446 bytes …

    Linux干货 2016-09-19
  • 脚本作业–函数练习

    1、编写服务脚本/root/bin/testsrv.sh,完成如下要求(1) 脚本可接受参数:start, stop, restart, status(2) 如果参数非此四者之一,提示使用格式后报错退出(3) 如是start:则创建/var/lock/subsys/SCRIPT_NAME, 并显示“启动成功”考虑:如果事先已经启动过一次,该如何处理?(4) …

    Linux干货 2016-08-24