1. 使用多命令选项-e

sed -e ‘command1’ -e ‘command2’ -e ‘command3’

在/etc/passwd文件中搜索root、nobody或mail

[root@sishen ~]# sed -n -e '/^root/ p' -e '/^nobody/ p' -e '/^mail/ p' /etc/passwdroot:x:0:0:root:/root:/bin/bash

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

2. 使用\折行执行多个命令

[root@sishen ~]# sed -n -e '/^root/ p' \

> -e '/^nobody/ p' \

> -e '/^mail/ p' /etc/passwd

root:x:0:0:root:/root:/bin/bash

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

3. 使用{ }把多个命令组合

如果要执行很多sed命令,可以使用{ } 把他们组合起来执行,如:

[root@sishen ~]# sed -n '{ /^root/ p

/^nobody/ p

/^mail/ p

}' /etc/passwd #注意}’与/etc/passwd之间的空格

root:x:0:0:root:/root:/bin/bash

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

sed脚本文件

首先建立测试文件

[root@sishen ~]# vim sedcommand.sed

s/\([^,]*\),\([^,]*\),\(.*\).*/\2,\1, \3/g

s/^.*/<&>/

s/Developer/IT Manager/

s/Manager/Directory/

[root@sishen ~]# sed -f sedcommand.sed employee.txt

<John Doe,101, CEO>

<Jason Smith,102, IT Directory>

<Raj Reddy,103, Sysadmin>

<Anand Ram,104, IT Directory>

<Jane Miller,105, Sales Directory>

<Jane Miller,#106, Sales Directory>

<Jane Miller,#107, Sales Directory>

sed注释

[root@sishen ~]# cat sedcommand.sed

#交换第一列和第二列

s/\([^,]*\),\([^,]*\),\(.*\).*/\2,\1, \3/g

#把整行内容放入<>中

s/^.*/<&>/

#把Developer替换为IT Manager

s/Developer/IT Manager/

#把Manager替换为DIrectory

s/Manager/Directory/

注意:如果sed脚本第一列开始的两个字符是#n的话,sed会自动使用-n选项(即不自动打印模式空间的内容)一般来说,不采用这种方法,尤其是在写脚本时定义执行脚本命令(即#!)时,容易造成混乱,产生错误,通常做法是使用参数”-n”

最新文章

  1. idea开发工具破解地址
  2. (UWP开发)基于Windows10 Anniversary SDK创造出位于可视化层的DropShadow
  3. 数据字典生成工具之旅(5):DocX组件读取与写入Word
  4. DNS 中的协议字段详细定义
  5. JS多异步之间的协作方案
  6. 自动编译和提交脚本(结合svn和visual studio)
  7. npm 模块常用命令
  8. Echarts data数据为空时,显示“-”
  9. SMTP Failed on Process Scheduler
  10. iOS开发-自动布局和自动旋转
  11. win7_64位主机装虚机Linux系统(VMware Workstation10+CentOS6.5)详细步骤图文讲解
  12. yii框架网址解析问题
  13. 再读TCP/IP网络7层协议
  14. mac和xcode快捷键
  15. ubuntu 修改系统时间无效
  16. flask session
  17. jQuery单选框的回显
  18. winform(记事本--保存和退出)
  19. 关于vue中eslint规范报错问题
  20. 经典模块化的前端框架:layer

热门文章

  1. css 滤镜之Gradient
  2. 淘宝API学习之道:淘宝TOP之API接口接入教程
  3. FancyCoverFlow
  4. Fix &quot;Unable to lock the administration directory (/var/lib/dpkg/)&quot; in Ubuntu
  5. Codeforces Little Dima and Equation 数学题解
  6. 设计模式-(17)策略模式 (swift版)
  7. fscanf()函数详解【转】
  8. POJ1458 Common Subsequence —— DP 最长公共子序列(LCS)
  9. 比特币客户端bitcoind的高级用法
  10. Silverlight数据绑定之DataGrid