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

相关推荐

  • lvs应用

    练习一:负载均衡一个php应用: 测试是否需要会话保持; 是否需要用到共享存储;    为了检测是否需要会话保持和共享存储,要在两台主机上分别配置LAMP环境;这样就使得两者之间没有了共享存储;负载均衡使用nat模型的wlc算法,并且不使用lvs的长连接选项。数据库故意使用了相同的账号密码来进行安装。 步骤一:配置环境: 使用yum分别安…

    Linux干货 2016-11-11
  • linux磁盘分区格式化基本操作

    磁盘分区 分区格式的两种选择:MBR和GPT 分区命令: parted的操作都是实时生效的,小心使用,主要是用于大于2T硬盘,支持MBR和GPT两种格式。 用法:parted [选项]… [设备[命令[参数]…]…] parted /dev/sdb mklabelgpt|msdos //选择分区格式 parted…

    Linux干货 2017-04-24
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 答:     复制目录:cp -R /etc/skel /home/tuser1     修改权限:chmod -R go=- /home/tuser1 2、编辑/etc/group文件…

    Linux干货 2016-12-07
  • LVS NAT模型

    LVS NAT NAT模式顾名思义就是对地址进行转换 通过访问前端外网的VIP调度到后端两台真实主机 拓扑图如下                      &n…

    2017-05-15
  • cnetos 6.7 内核编译

    简介     Linux内核的体积结构是单内核的,但充分借鉴了微内核设计体系的优点,为内核引入模块化机制,使得虽然是单内核、但工作在模块化的方式下、并且这个模块可以动态装载或卸载;Linux负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。如是我们在了解Linux内核的基础上根据自己的需…

    Linux干货 2016-02-27
  • N24_jerry 第十二周作业

    1、请描述一次完整的http请求处理过程; 简介 一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。无论是什么客户端或者是什么服务端,大家只要按照HTTP的协议标准…

    Linux干货 2017-03-22