|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。
例十假如设定了良多-e的command,它们的实行按次是如何的呢?
[rocrocket@rocrocketprogramming]$catmysed.txt
Beijing2003
Beijing2004
Beijing2005
Beijing2006Beijing2007
Beijing2008
[rocrocket@rocrocketprogramming]$sed-e‘s/Beijing/London/g’-e‘/Beijing/d’mysed.txt
London2003
London2004
London2005
London2006
London2007
London2008
后一个-e中包括了删除Beijing地点行,可是最初的了局倒是一切行都输入了,实在这就是由实行按次招致的,第一个-e已将Beijing都交换成了London了,以是怪不得第二个-e找不到Beijing了。
例十一读取一个特定文件的内容,将其拔出到本文件指定的中央:
[rocrocket@rocrocketprogramming]$catins.txt
====China====
[rocrocket@rocrocketprogramming]$catmysed.txt
Beijing2003
Beijing2004
Beijing2005
Beijing2006
Beijing2007
Beijing2008
[rocrocket@rocrocketprogramming]$sed‘/2005/rins.txt’mysed.txt
Beijing2003
Beijing2004
Beijing2005
====China====
Beijing2006
Beijing2007
Beijing2008
此命令用于在含有2005的行上面拔出ins.txt文件的内容。
例十二将某些指定行写进到特定文件中
[rocrocket@rocrocketprogramming]$sed‘/200[4-6]/wnew.txt’mysed.txt
Beijing2003
Beijing2004
Beijing2005
Beijing2006
Beijing2007
Beijing2008
[rocrocket@rocrocketprogramming]$catnew.txt
Beijing2004
Beijing2005
Beijing2006
看,wnew.txt暗示将含有2004、2005、2006的行写进到new.txt文件中。
例十三利用a在特定行“上面”拔出特定内容
[rocrocket@rocrocketprogramming]$catnew.txt
Beijing2004
Beijing2005
Beijing2006
[rocrocket@rocrocketprogramming]$sed‘/2004/aChina’mysed.txt
Beijing2003
Beijing2004
China
Beijing2005
Beijing2006
Beijing2007
Beijing2008
利用a然后加上必要加的内容便可。
例十四利用i在特定行“下面”拔出特定内容
[rocrocket@rocrocketprogramming]$sed‘/2004/iChina’mysed.txt
Beijing2003
China
Beijing2004
Beijing2005
Beijing2006
Beijing2007
Beijing2008
例十五交换特定字符
[rocrocket@rocrocketprogramming]$catmysed.txt
Beijing2003
Beijing2004
Beijing2005
Beijing2006
Beijing2007
Beijing2008
[rocrocket@rocrocketprogramming]$sed‘y/eijng/EIJNG/’mysed.txt
BEIJING2003
BEIJING2004
BEIJING2005
BEIJING2006
BEIJING2007
BEIJING2008
利用了y就暗示将第一栏的每一个字符都交换为绝对应的第二栏的字符。
例十六对婚配行的下一行举行处置
[rocrocket@rocrocketprogramming]$catmysed.txt
Beijing2003
Beijing2004
Beijing2005
Beijing2006
Beijing2007
Beijing2008
[rocrocket@rocrocketprogramming]$sed‘/2004/{n;y/eijng/EIJNG/;}’mysed.txt
Beijing2003
Beijing2004
BEIJING2005
Beijing2006
Beijing2007
Beijing2008
这个例子就是找含有2004的行,然后将它上面的一行中的eijng交换为年夜写的EIJNG。这内里的“n;”起到了“移至下一行”的感化。n面前的寄义实际上是将下一行放到形式空间中往。
[rocrocket@rocrocketprogramming]$catmysed.txt
Beijing2003
Beijing2004
Beijing2005
Beijing2006
Beijing2007
Beijing2008
[rocrocket@rocrocketprogramming]$sed‘/200/{n;y/eijng/EIJNG/;}’mysed.txt
Beijing2003
BEIJING2004
Beijing2005
BEIJING2006
Beijing2007
BEIJING2008
这个例子加倍典范,你能够发明,BEIJING是隔行呈现的。你晓得为何么?不说谜底了,信任你能本人思索出来!
ps:sed的流艺术系列到这里就停止了:)
ps:实在sed的学问还很年夜,正则表达式也有良多必要进修的中央,我也在进修中…这个小系列,就当举一反三了,但愿对你有效!
系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho |
|