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

相关推荐

  • Linux的文件压缩、解压之tar的使用

    文件的压缩   一、压缩、解压缩及归档工具 压缩 解压 后缀(压缩后) file-roller 图形操作界面上的使用(略) compress 解压一:uncompress 或compress -d (注:使用上面的解压命令,实际上是在屏幕上打印解压的文件信息,并不是真正上解压到文件,所以需要在命令后面加上“重定向到指定的文件中”,方可完成解压。如:…

    Linux干货 2016-08-18
  • Linux任务计划

        任务计划分类:    一次性任务计划:只执行一次就结束                at batch    周期性任务计划:每隔一定的周期去…

    Linux干货 2017-05-08
  • 第二天作业

    1、echo 查闪烁,下划,颜色    echo -e "\033[31;5;1m*******\033[0m\n \033[32;5;1m*****\033[0m\n  \033[33;5;1m***\033[0m\n   \033[34;5;1m*\033[0m" 2、scr…

    Linux干货 2016-07-26
  • redis主从复制(4)— client buffer

    1、 client buffer的设计 redis server以单进程的方式处理接收到的请求,而redis完成请求有些工作比较慢,比如网络IO和磁盘IO等比较慢的操作。redis为了提高处理客户端请求的响应时间,做了很多优化。比如网络io和磁盘io是异步完成、使用后台进程完成bgsave和bgrewriteaof工作,在server端为客户提供读buffe…

    Linux干货 2016-03-28
  • 分布式文件系统MogileFS

    1、分布式系统的目标:加强A、P,在C上进行妥协     BASE模型 CAP理论: C:Consistency(一致性)  任何一个读操作总是能够读取之前完成的写操作。 A:Availability(可用性) 每一次操作总是能够在确定的时间返回。 P: Partition Tolerance ( 分区容错性 )   在出现网络分区的情况下,仍然能够满足一致…

    2017-11-23
  • linux文件权限详解

    基本命令 1.cut : cat /etc/passwd | cut -d’:’ -f7| uniq -c| sort -nr 2.authconfig 修改加密方式 –passalgo=sha256 — update 3.scp 上传文件 -r dir ip:path 传目录 file ip:path传文件 …

    Linux干货 2017-04-03