码迷,mamicode.com
首页 > 其他好文 > 详细

四.执行sed

时间:2017-10-12 21:48:32      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:开头   employee   包含   打印   nan   需要   文件   建立   /etc/   

1. 单行内执行多个sed命令

(1) 使用命令选项-e

多命令选项-e使用方法如下:

sed -e ‘command-1‘ -e ‘command-2‘ -e ‘command-3‘

 

(2) 使用\折行执行多个命令

在执行很长的命令时,可以使用\来把命令折到多行

$ sed -n -e ‘/^root/ p‘ \

-e ‘/^nobody/ p‘ \

-e ‘/^mail/ p‘ \

/etc/passwd

 

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

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

$ sed -n ‘{
 /^root/ p
 /^nobody/ p
 /^mail/ p
 }‘ /etc/passwd

 

2.sed脚本文件

如果需要重复执行一组sed命令,那么可以建立sed脚本文件,里面包含所有要执行的sed命令, 然后用-f选项来使用。例如:

首先建立下面文件,里面包含所有要执行的sed命令:

$ cat mycommands.sed

s/\([^,]*\),\(\[^,]*\),\((.*)\).*/\2,\1,\3/g
s/^.*/<&>/
s/Developer/IT Manager/
s/Manager/Director/

现在执行脚本里面的命令:

$ sed -f mycommands.sed employee.txt

<101,John Doe,CEO>
<102,Jason Smith,IT Director>
<103,Raj Reddy,Sysadmin>
<104,Anand Ram,IT Director>
<105,Jane Miller,Sales Director>

 

3.sed注释

sed注释以#开头。写脚本时,最好加上注释,否则后面很难看懂脚本到底干啥的

 

4.直接修改输入文件

到目前为止,我们知道sed默认不会修改输入文件,它只会把输出打印到标准输出上。

我们也可以使用-i命令,来直接修改输入文件,例如:

$ sed -i ‘s/John/Johnny/‘ employee.txt

再次提醒: -i 会修改输入文件。请务必小心,一个保护性的措施是,在-i后面加上备份扩展,这一sed就会在修改原始文件之前,备份一份。例如:

$ sed -ibak ‘s/John/Johnny/‘ employee.txt

 

四.执行sed

标签:开头   employee   包含   打印   nan   需要   文件   建立   /etc/   

原文地址:http://www.cnblogs.com/NewMan13/p/7657851.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!