zoukankan      html  css  js  c++  java
  • 第4章 sed命令

    1 sed命令基本用法

    sed(stream editor)是流编辑器,可对文本文件和标准输入进行编辑;

    sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件,如果需要保存改动内容,可以选择使用下面两种方法:

    重定向、w编辑命令。

    2 调用sed有三种方法

    • 在Shell命令行输入命令调用sed,格式为:

    sed [选项] ‘sed命令’ 输入文件

    • 将sed命令插入脚本文件后,然后通过sed命令调用它,格式为:

    sed [选项] -f sed脚本文件输入文件

    • 将sed命令插入脚本文件后,最常用的方法是设置该脚本文件为可执行,然后直接执行该脚本文件,格式为:

    ./sed脚本文件输入文件

    注:第二种方法脚本文件的首行不以#!/bin/sed –f开头;第三种方法脚本文件的首行是#!/bin/sed –f

    3 sed命令选项

    选项

    意义

    -n

    不打印所有行到标准输出

    -e

    表示将下一个字符串解析为sed编辑命令,如果只传递一个编辑命令给sed,-e选项可以省略

    -f

    表示正在调用sed脚本文件

    4 sed文本定位

    选项

    意义

    x

    x为指定行号

    x,y

    指定从x到y的行号范围

    /pattern/

    查询包含模式的行

    /pattern/pattern/

    查询包含两个模式的行

    /pattern/,x

    从与pattern的匹配行到x号行之间的行

    x,/pattern/

    从x号行到与pattern的匹配行之间的行

    x,y!

    查询不包括x和y行号的行

    5 sed编辑命令

    选项

    意义

    p

    打印匹配行

    =

    打印文件行号

    a

    在定位行号之后追加文本信息

    i

    在定位行号之前插入文本信息

    d

    删除定位行

    c

    用新文本替换定位文本

    s

    使用替换模式替换相应模式

    r

    从另一个文件中读文本

    w

    将文本写入到一个文件

    y

    变换字符

    q

    第一个模式匹配完成后退出

    l

    显示与八进制ASCII代码等价的控制字符

    {}

    在定位行执行的命令组

    n

    读取下一个输入行,用下一个命令处理新的行

    h

    将模式缓冲区文本拷贝到保持缓冲区

    H

    将模式缓冲区文本追加到保持缓冲区

    x

    互换模式缓冲区和保持缓冲区内容

    g

    将保持缓冲区内容拷贝到模式缓冲区

    G

    将保持缓冲区内容追加到模式缓冲区

    6 示例

    6.1 选项示例

    image

    只打印第一行

    image

    打印包含close关键字的行

    调用sed脚本

    • 原始文件

    image

    • 脚本内容

    image

    • 执行结果

    image

    6.2 文本定位

    sed -n '$p' input #匹配最后一行
    sed -n '/close/,$p' input #打印与close匹配到最后一行

     

  • 相关阅读:
    Go基础系列:双层channel用法示例
    shell脚本动画小工具
    Go基础系列:channel入门
    python面向对象入门(1):从代码复用开始
    python包导入细节
    python模块导入细节
    Go基础系列:读取标准输入
    黄聪:C#获取网页HTML内容的三种方式
    黄聪:如何正确在Vue框架里使用Swiper
    黄聪:C#使用GeckoFx拦截监控Http数据
  • 原文地址:https://www.cnblogs.com/boyiliushui/p/5615456.html
Copyright © 2011-2022 走看看