Sed的使用方法

来源:互联网 发布:linux vi覆盖文件内容 编辑:程序博客网 时间:2024/05/15 23:50

语法:  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 linetrace@realize:~/study/shell/sed$ cat textfile This is 1st lineThis is target lineThis is last linetrace@realize:~/study/shell/sed$ sed -f sed_script textfile This is 1st lineThis is target lineA new lineThis is last linetrace@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 lineTh12 12 target lineThis 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 l1neTh12 12 target l1neThis is last line

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












原创粉丝点击