zoukankan      html  css  js  c++  java
  • sed命令:基础学习

    sed:流编辑器,用来把文档里面的文字经过一系列编辑命令转换为另一种格式输出;通常用来匹配一个或多个正则表达式的文本进行处理。

    重要:sed编辑器自身不会修改文本文件中的数据,它只是将修改后的哦数据发送到STDOUT。

    使用sed的帮助手册:

    • man sed | less
    • info sed
    • sed --help | less

    1.sed命令行常用选项

    -i      将sed处理结果直接插入到文件中

    -f      按照指定sed脚本里的命令来进行处理

    -r      在脚本中使用扩展正则表达式

    -n        去掉自动打印模式空间

    2.sed常用命令

    a \      在当前行的后面追加一行文本

    i \       在当前行的前面插入一行文本

    c \      用新的文本改变当前行的文本

    d        从匹配模式的位置删除行

    D          删除首行

    p        打印匹配模式的行

    w        写入文件

    s/re/string     替换字符串

    =        打印当前行号码

    3.关于sed行寻址

    sed流编辑器默认将使用的命令作用于文本数据的所有行。当然,如果想将命令作用于某些行,这就要使用行寻址

    行寻址有两种:

    • 数字方式的行寻址
    • 文本模式过滤方式的行寻址
    3.1数字方式的行寻址
    1. 起始行号      sed -n ‘1p' file         
    2. 结尾行号      sed -n '$p' file
    3. 指定单个行号    sed -n '3p' file  
    4. 指定行号范围    sed -n '2,3p' file
    3.2文本模式过滤方式的行寻址

      语法格式:sed ’/pattern/command‘ file

    4.sed基础实例

    4.1文本替换 s

    使用命令s可以进行文本替换,语法如下:

      s/regexp/replacement/

    sed主要有4种可用的替换标记,其作用为:让替换命令对一行中不同地方出现的文本都起作用,在替换命令字符串之后进行设置。

      sed ’s/string/test/2' file    替换第二处模式匹配的地方

      sed ‘s/string/test/g’ file    替换file中所有模式匹配的地方

      sed -n ‘s/string/test/p’ file   打印指定模式匹配的行

      sed ‘s/string/test/w newfile' file   将替换的文本写入到新文件中

    4.2删除行  d

    使用命令d可以进行删除行操作。

      sed ’5d' file      删除文件第5行

      sed ‘5,8d’ file     删除文件第5到第8行

      sed ‘5,$d' file     删除文件第5行到结尾

      sed ’/test/d‘ file    删除匹配test的行

    4.3插入文本 i \

    使用命令i \可以在指定地址前插入一行。

      sed ’2i\string' file    在第2行前插入新行string

      sed ‘/test/i\string' file   在匹配test出现的行前插入新行string

    4.4追加文本 a \

    使用命令a \可以在指定地址后追加一行。

      sed ’2a\string' file    在第2行后追加新行string

      sed ‘/test/a\string' file   在匹配test出现的地址后追加新行string

    4.5修改行 c \

    使用命令c \可以修改数据流中整行文本的内容。

      sed ’5c\This is line number 5.' file  修改数据流第5行内容为This is line number 5.

      sed '/string/c\test' file         修改匹配string出现的行为test

    4.6转换命令 y

      语法: y/source/dest/ 

      sed ‘y/123/456/' file  

    4.7文本打印 p  

    小写p打印文本行    sed ’3p‘ file

    等号(=)打印行号   sed ’=‘ file

    小写l用来列出数据流中的文本和不可打印的ASCII字符

    4.8写入文件 w

    使用命令w可以用来向文件写入行。

      sed ’3,8w newfile' oldfile

      sed '/test/w newfile' oldfile

    4.9读取文件 r

    使用命令r可以将一个独立文件中的数据都插入到数据流中。

      sed '$r file2' file1  将file2中的所有文本都插入到file1的末尾。

  • 相关阅读:
    2018-2019-2 实验三 敏捷开发与XP实践
    计算机网络课外实验一级 20175319江野
    2018-2019-2 《Java程序设计》第9周学习总结
    MyCP(课下作业,必做)
    [NOIP2012] 疫情控制
    [SPOJ2021] Moving Pebbles
    谁能赢呢?
    [HEOI2014] 人人尽说江南好
    [笔记] 巴什博弈
    [SCOI2008] 着色方案
  • 原文地址:https://www.cnblogs.com/smstars/p/3060378.html
Copyright © 2011-2022 走看看