sed命令

Introduction

sed命令是一种类似于awk的命令,有关awk命令简单介绍见我的另一博客awk。sed主要用来处理一个或多个文档,处理过程是这样滴:sed每次处理一行,先将行数据缓存起来,然后使用sed命令处理行数据,处理完后将缓冲区数据送至屏幕,再处理下一行,如此循环直到文件末尾。在这过程中,原文档内容并没有改变,除非使用重定向输出到文档。

Usage

sed [选项]… {脚本} [输入文件]

-n, –quiet, –silent 禁用模式空间的自动打印

-e script, –expression=script 添加一个将要被sed命令执行的脚本

-f script-file, –file=script-file 添加一段将要被执行的脚本文件的内容

–follow-symlinks 直接在文档中处理数据时伴随着符号链接

-i[SUFFIX], –in-place[=SUFFIX] 在待修改的文件中编辑文档(若SUFFIX支持则建立备份)

-l N, –line-length=N 指定 使用’I’指定希望换行的长度

–posix 所有GNU扩展不可用

-r, –regexp-extended 在脚本中使用扩展的正则表达式

-s, –separate 分割文档而不是作为单一连续的流

-u, –unbuffered 从输入文件中加载最小量的数据并时常刷新输出缓冲区

-z, –null-data 以无效字符来切分行

–help 显示帮助并退出

–version 输出版本信息并退出

另外sed还有其他function:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可直接进行取代的工作。通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

Example

1.全部替换
  格式:sed [option] 's/原字符串/替换字符串/g' input-file
  将所有o全部替换成O:sed 's/o/O/g' test-sed.txt
  (注:然而上述命令并没有对原文件产生影响,只是缓冲区里的数据被修改,要写入文件需使用参数-i)
2.指定行替换
  格式:sed [option] '[line number]s/原字符串/替换字符串/g' input-file
  将第二行o全部替换成O:sed '2s/o/O/g' test-sed.txt
3.指定范围内的行替换
  格式:sed [option] '[start,end]s/原字符串/替换字符串/g' input-file
  将第二行到第五行o全部替换成O:sed '2,5s/o/O/g' test-sed.txt



1.指定行数删除
  格式:sed -i [2]d input-file
  将第二行删除:sed -i 2d test-sed.txt
2.指定范围内的行删除
  格式:sed -i [2,8]d input-file
  将第二行到第八行删除:sed -i 2,8d test-sed.txt

Remark

小白才疏学浅,文章若有错漏之处还望指出,谢谢O(∩_∩)O

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值