`
sweetts
  • 浏览: 13315 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

sed命令的用法和一些问题

阅读更多
流编辑器sed的使用

sed [option] command input-file
sed [option] -f script-file input-file


常用选项

n:不输出所有行,默认是输出所有行
e:允许在该选项后面加一条新的编辑指令
f:用于指定装有编辑指令的脚本文件
h:输出sed的帮助信息

常用的定位方式

n:表示行号为n的行
m,n:表示一个行号的范围,从m行到n行
m,n!:排除m行到n行
/pattern/              表示匹配pattern的所有行
/pattern1 /pattern2/   表示匹配pattern1和pattern2的所有行,需要使用e将两个模式隔开
/pattern/,+n           从匹配pattern的行开始,向后n行的所有行,这里总共输出n+1行
/pattern/.~n           从匹配pattern的行开始,向后n行的所有行,这里总共输出n行
n,/pattern/            表示从第n行开始到匹配pattern之内的所有行

例子:
1.使用数字3指定输出的行号,n表示不输出所有行  sed -n '3p' students
       加上n参数很重要,否则总是显示所有行,p表示的显示
2.输出第3行到第5行                            sed -n '3,5p' students
3.使用模式匹配定位                            sed -n '/[tT]angwei/p' students
4.同时使用行号和模式匹配                      sed -n '2,/hetao/p' students
          此处如果不加n的话,2到hetao匹配的行会打印两遍。因为不加n就会所有行输出一遍,然后这个命令会再输一遍。
5.使用编辑指令=输出行号                       sed -n '/xizang/=' students
6.删除行的指令 d  删除第1到第3行              sed '1,3d' students
7.使用编辑指令a在第一行后插入                 sed '1a \This is a new line.' students
   值得注意的是:sed不会去修改文件的内容,只是对你的操作显示,比如源文件内容是aaaaaa,执行上述操作以后屏幕打印
             aaaaaa
             This is a new line.
    但是文件的内容是不会发生变化的。除非你从定向写入。
     例如执行一下命令将结果保存到另一个文件aa1  sed '1a \This is a new line.' students>aa1  
8.使用编辑指令a在最后一行后插入                 sed '$a \This is a new line.' students
9.如果要插入的数据很长,可以用r先读取再插入   sed '3r ex' students 把ex文件插入3行以后
10.使用~时有这样一个问题:如果你的文本文件aa执行下面的操作
     有趣的现象是:如果是使用sed '1,~1p' aa,总是会输出两行,sed '2,~2p' aa,总是会输出3行。与+n的作用一样。
11.用-f参数直接执行脚本文件 sed -f insert.sed aa
   insert.sed文件如下:
    /a/ i\
    The first line.\
    The second line.\
    the last line.
  此时是在匹配a的行前面加上以上3行数据。其中1,2行的反斜杠不能丢。没有反斜杠,linux会去解析2,3两行的数据,认为它是什么命令。
分享到:
评论

相关推荐

    linux 系统 sed 命令使用方法

    linux 系统 sed 命令使用方法linux 系统 sed 命令使用方法linux 系统 linux 系统 sed 命令使用方法linux 系统 sed 命令使用方法sed 命令使用方法

    Linux Shell脚本编程--sed命令详解.zip_shell sed_命令介绍_脚本 shell

    shell编程中经常用到sed命令,本文详细介绍了shell常用命令sed详细用法

    linux shell命令sed的使用方法

    linux shell命令sed的使用方法

    Linux下sed命令的用法

    文章主要介绍Linux下sed命令的用法,感兴趣的朋友可以看看。

    sed命令详解 快速入门

    sed用了文本处理,功能强大 本文档是我学习的一些记录,也用于我以后的查询,很多命令和用法很久不用就容易忘记。 读了本文档希望能给予你快速上手sed命令。

    linux sed命令详解(推荐)

    sed命令是一个面向字符流的非交互式编辑器,也就是说sed不允许用户与它进行交互操作。sed是按行来处理文本内容的。在shell中,使用sed来批量修改文本内容是非常方便的。 sed命令的选项 sed [选项] [动作] 选项与参数...

    sed命令的用法

    sed命令的语法,及在genesis2000的具体应用,主要用于script脚本的编写

    sed 命令的和cut命令的用法

    Linux sed 命令用法详解

    Linux sed 命令 Linux sed 命令是利用脚本来处理文本文件。 sed 可依照脚本的指令来处理、编辑文本文件。 Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 语法 sed [-hnV][-e][-f]...

    linuxsed命令全参数及用法详解.docx

    linuxsed命令全参数及用法详解.docx

    sed命令替换文件内容

    sed命令下批量替换文件内容 格式: sed -i “s/查找字段/替换字段/g” `grep 查找字段 -rl 路径` 文件名 -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 s表示替换,d表示删除 示例:...

    实例秒解sed和awk的秘密

    sed命令_Linux sed 命令用法详解:功能强大的流式文本编辑器

    sed命令格式解析.docx

    本文详细讲解了Linux shell编程三剑客之一的sed的用法,并给出了详细的例子。

    linux中sed命令的使用与注意小结

    处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并...

    Linux-02sed.ppt

    什么是sed:主要介绍什么是sed工具,sed工具的主要操作、工作方式以及地址表示方法,在sed命令中使用正则表达式等。 sed命令的常用操作:主要介绍sed命令的注释方法,打印文本,替换文本,删除文本,追加文本,插入...

    自编sed实例-中文

    本文用一个个简短的例子展示sed每一个命令的用法,简单易懂,希望对你有些帮助。 网上大多资料都是英文版的,好多人看着不打舒服,因此写此题集,助你快速提升对sed的驾驭能力。

    实战基本的Linux sed命令示例代码

    它使您能够使用Linux sed命令在操作系统中执行文本文件操作。 与大多数Linux应用程序一样,sed可以处理管道输入,这使它成为一种有效的脚本工具。您可以将其用作基本的查找和替换工具,如下面的示例命令所示,该命令...

    awk和sed思维导图

    关于unix/linus下面的常用命令awk和sed的思维导图,通过图片全面了解了命令所需参数和命令格式,以及相应的命令中自带的函数等等。

    linux之sed命令的用法

    在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。-e∶直接在指令列模式上进行 sed 的动作编辑;-f∶直接将 sed ...

    Shell用sed命令删除特定行的方法

    sed命令作为一个强大的shell命令,可以快速删除任意...注:使用sed命令可以使用 -i 或者 -e 选项(以下例子仅以-i举例) sed命令删除特定行号 删除第N行 sed -i 'Nd' filename 删除第N~M行 sed -i 'N,Md' filen

Global site tag (gtag.js) - Google Analytics