sed的用法小结

sed的用法小结

sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等
sed [OPTION]… ‘script’ [input-file] …

OPTION:

-n 不输出模式空间中的内容至屏幕,仅显示script处理后的结果
-e 多点编辑,eg: ~]# sed  -e  's@^#[[:space:]]*@@'   -e  '/^UUID/d'  /etc/fstab
-f 每行编辑一个命令
-r 支持使用扩展正则表表达式

地址定界:

(1)空地址:对全文进行处理
(2)单地址:
    #指定行
    /pattern/:被刺模式所匹配的到的每一行
(3)    地址范围
    #,#:
    #,+#:
    #,/part1/
    /part1/,/part2/
    $:最后一行
(4)    步进:~
    1~2:所有奇数行
    2~2:所有偶数行

编辑命令:

d:删除d后面通常不接任何东西
p:显示模式空间的内容,通常 p 会与参数 sed -n 一起运行~
w: /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中
r  /PATH/FROM/SOMEFILE:读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并
s///:查找替换,其分隔符可自行指定,常用的有s@@@, s###等;
    g:全局替换;
    w /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中;
    p:显示替换成功的行;
a\test 追加,而这些字串会在新的一行出现(目前的下一行)
c\text取代,c后面可以接上字符串
i\text追加,而这些字串会在新的一行出现(目前的上一行)

练习:

删除/etc/grub2.cfg文件中所有以空白字符开头的行的行首的所有空白字符;
~]# sed  's@^[[:space:]]\+@@' /etc/grub2.cfg

删除/etc/fstab文件中以#开头的行的行首的#及#后面的所有空白字符
~]# sed  's@^#[[:space:]]*@@'  /etc/fstab

输出一个绝对路径给sed命令,取出其目录,其行为类似于dirname
~]# echo "/var/log/messages/" | sed 's@[^/]\+/\?$@@'

将etc/fstab中的UUID替换成ABCD
~]# sed  's/UUID/ABCD/p' /etc/fstab

注 sed -i 可以直接修改原文件

[root@localhost ~]# vim test.txt
[root@localhost ~]# cat test.txt 
test
[root@localhost ~]# sed -i 'a\#This is a test' test.txt 
[root@localhost ~]# cat test.txt 
test
#This is a test

在要编辑一个超大的文本文件的时候,就可以不用vim打开再编辑了,直接用sed -i 就可以直接在指定行添加内容了!

原创文章,作者:N27_flypig,如若转载,请注明出处:http://www.178linux.com/85283

(0)
N27_flypigN27_flypig
上一篇 2017-08-22 13:55
下一篇 2017-08-23 16:21

相关推荐

  • 小工具(维基百科)

     维基百科  方法:复制C:\Windows\System32\drivers\etc到我的电脑地址栏               打开hosts,选择文本文档方式打开              19…

    Linux干货 2017-07-10
  • 第八周网络基础以及脚本联系

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 ![](http://i.imgur.com/5u2IMF8.png) 三层交换机:将路由技术和交换技术合二为一的技术,当对第一次数据流进行路由后,会产生一个MAC地址与IP地址相对应的映射表,当同样的数据流再次通过时,将根据映射表进行数据交换而不在进行路由。 路由器:工作于网络…

    Linux干货 2017-03-30
  • linux系统启动流程及内核编译

    Linux系统启动流程 initialization [ɪˌnɪʃəlaɪ'zeɪʃn] 初始化 内核参数: /usr/share/doc/kernel-doc-VERSION/Documentation 系统初始化流程(内核级别): POST –> BootSequence(BIOS) –> BootLoade…

    Linux干货 2016-09-19
  • linux发行版说明和哲学思想,以及常用命令说明

    Linux发行版主要流行的版本有3种:debian,slackware,red 其说明和特点如下图。 Linux哲学思想: 1、一切皆文件;所有的一切都变成了文件!不光是软件方面的比如传统文件、目录、字符设备、还包括硬件或者接口。如鼠标/mouse、打印机/lp、还有接口比如/usb. 2、单一目的的小程序;一个程序只负责干一件事,而且要把这个任务做好。 3…

    Linux干货 2016-10-30
  • CentOS7 Local yum的一次报错信息

    说明:今天在火车上测试一个CentOS7下的一个服务,要用到yum配置,但是本机没有联网,所以考虑到配置本地yum,按照之前CentOS6下的常规方法,居然发现有报错。 操作如下: 1)虚拟机下将CentOS7光盘加载到系统里面,然后挂载到本地的/localyum上 [root@localhost yum.repos.d]# mount&…

    Linux干货 2016-07-16
  • linux grep manual

    名称    grep – 打印匹配的行语法:     grep [option] pattern [file…]     grep [option] [-e pattern]…

    Linux干货 2015-08-31