Sed的使用方法

语法:  sed [-hnv] [-e <script>] [-f <script 文件>] [文本文件]

参数: 

 -e <script>  以选项中指定的script来处理输入的文件

-f <script 文件>   以选项中指定的script文件来处理输入的文件

-h   显示帮助

-n --quiet或--silent  仅显示script处理后的结果.

-V 或 --version   显示版本信息

在参数中使用的script语法:  [行号] [/查找字符串/命令  <参数>]

[行号] :    [行号, 行号], 指定第一个行号和第二个行号之间的每一行

                [行号!] 除此行之外的所有行

                不指定行号,且没有指定/查找字符串/, 处理输入文件的每一行

a\<字符串> :   在指定的行后新增一行<字符串>

c\<字符串> :   以<字符串> 取代指定的行

d: 删除指定的行

i\<字符串> : 在指定的行前新增一行<字符串>

p: 显示指定的行

r<文本文件>: 先处理此处指定的文本文件, 然后处理命令行中所指定的文本文件

s/<查找字符串>/<取代字符串>/<取代方式>:  取代方式有3种

                                                                               n:  取代第n个找到的<查找字符串>

                                                                               g:  取代所有找到的<查找字符串>

                                                                               p:  取代后,再显示一次此行

w<文本文件>: 在此文件填入指定字符

y/<查找字符>/<取代字符>/: <查找字符>和<取代字符>的长度必须相同


范例:

  1. 查找含有"target"的行,在后面新增一行,内容是" A New Line"
    trace@realize:~/study/shell/sed$ cat sed_script 
    /target/a\
    A new line
    trace@realize:~/study/shell/sed$ cat textfile 
    This is 1st line
    This is target line
    This is last line
    trace@realize:~/study/shell/sed$ sed -f sed_script textfile 
    This is 1st line
    This is target line
    A new line
    This is last line
    trace@realize:~/study/shell/sed$ 

  2. 将textfile中第1,2行的"is"取代为12
    trace@realize:~/study/shell/sed$ sed -e 1,2s/is/12/g textfile 
    Th12 12 1st line
    Th12 12 target line
    This is last line

  3. 将textfile中第1,2行的"i"取代为1, "s"取代为2:
    trace@realize:~/study/shell/sed$ sed -e 1,2y/is/12/ textfile 
    Th12 12 12t l1ne
    Th12 12 target l1ne
    This is last line

  4. 将textfile中第2,3行写入newfile文件中
    trace@realize:~/study/shell/sed$ cat sed_script 
    1!w newfile
    trace@realize:~/study/shell/sed$ sed -f sed_script textfile 
    This is 1st line
    This is target line
    This is last line
    trace@realize:~/study/shell/sed$ cat newfile 
    This is target line
    This is last line












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值