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

相关推荐

  • 笔记

    命令 命令列表 alias 别名 bc 计算器 basename文件基本名 cp 复制 cd 进入文件夹 cat /proc/partition 查看硬盘的使用情况 cat /proc/meminfo 查看内存的使用情况 chvt 切换终端 chown改变文件的所属组 edj:chown -R www /etc/host clock 查询或设置硬件时间 ch…

    Linux干货 2017-05-25
  • httpd功能配置之https

       HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS使用443端口进行通信。    …

    Linux干货 2016-03-13
  • 二、(3)Linux的文件与数据之:元数据

    文件的元数据 在Linux的文件系统中,数据可分为两大类:数据和元数据 数据:泛指普通文件中的实际数据 元数据:用来描述一个文件的特征的系统数据 这样抽象的描述并不能很清楚地表示元数据的定义,所以下面将借助stat命令进行举例说明: stat命令 stat – display file or file system status(用于展示文件或文…

    2018-01-11
  • 文本编辑器sed和vim的用法集锦

    8月8号,主要学习内容为: 一、文本处理工具sed 二、vim编辑器 一、文本处理工具sed 1)简介    sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下…

    Linux干货 2016-08-12
  • 脚本又见脚本,作业又是作业_第七周

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@centos ~]# fdisk -l &n…

    Linux干货 2016-12-30
  • Linux文件查找之find命令

    前言:        Linux文件种类繁多,难免在维护Linux中会忘记文件的路径。所有在维护Linux中学好查找命令是非常必要的。     Linux查找命令有很多,比如 whereis,type,which,locate,find(重点)。  &nbsp…

    Linux干货 2015-06-15