sed练习简记
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”
最新文章
- idea开发工具破解地址
- (UWP开发)基于Windows10 Anniversary SDK创造出位于可视化层的DropShadow
- 数据字典生成工具之旅(5):DocX组件读取与写入Word
- DNS 中的协议字段详细定义
- JS多异步之间的协作方案
- 自动编译和提交脚本(结合svn和visual studio)
- npm 模块常用命令
- Echarts data数据为空时,显示“-”
- SMTP Failed on Process Scheduler
- iOS开发-自动布局和自动旋转
- win7_64位主机装虚机Linux系统(VMware Workstation10+CentOS6.5)详细步骤图文讲解
- yii框架网址解析问题
- 再读TCP/IP网络7层协议
- mac和xcode快捷键
- ubuntu 修改系统时间无效
- flask session
- jQuery单选框的回显
- winform(记事本--保存和退出)
- 关于vue中eslint规范报错问题
- 经典模块化的前端框架:layer
热门文章
- css 滤镜之Gradient
- 淘宝API学习之道:淘宝TOP之API接口接入教程
- FancyCoverFlow
- Fix ";Unable to lock the administration directory (/var/lib/dpkg/)"; in Ubuntu
- Codeforces Little Dima and Equation 数学题解
- 设计模式-(17)策略模式 (swift版)
- fscanf()函数详解【转】
- POJ1458 Common Subsequence —— DP 最长公共子序列(LCS)
- 比特币客户端bitcoind的高级用法
- Silverlight数据绑定之DataGrid