• <linux-sed> sed基本用法


    1.简介

    sed全称是Stream Editor,是非交互式的编辑器。它不会修改原文件,除非使用shell重定向来保存结果, 或者可以指定-i选项来在线修改文件,这样就会改变原文件,升级脚本通常用-i选项。 默认情况下,所有的输出行都被打印到屏幕上 。sed 本身也是一个 管线命令 ,可以分析 standard input 。

    sed编辑器 逐行处理文件(或输入) ,并将结果发送到屏幕。具体过程如下:

    (1) 首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间), (2) 然后处理临时缓冲区中的行, (3) 完成后把该行发送到屏幕上。

    sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。

    2. 定址

    在使用sed的过程中,我们经常会听到“定址”,那么什么是“定址”呢?

    定址用于决定对哪些行进行编辑 。地址的形式可以是 数字、正则表达式、或二者的结合 。如果没有指定地址,sed将处理输入文件的所有行。

    比如:

    1)地址是一个数字则表示行号;是“$"符号,则表示最后一行。

    sed -n '3p' datafile   #只打印第三行

    2)只显示指定行范围的文件内容

    sed -n '100,200p' mysql_slow_query.log  # 只查看文件的第100行到第200行

    3)地址是逗号分隔的,那么需要处理的地址是这两行之间的 范围 (包括这两行在内)。范围可以用数字、正则表达式、或二者的组合表示。

    •  sed '2,5d' datafile  #删除第二到第五行 

    •   

    •  sed '/My/,/You/d' datafile  #删除包含"My"的行到包含"You"的行之间的行 

    •   

    •  sed '/My/,10d' datafile  #删除包含"My"的行到第十行的内容

    3. sed命令与选项

    调用sed命令有两种形式:

    sed [options] 'command' file(s)
    sed [options] -f scriptfile file(s)

    对于第一种形式,具体调用一般是:

    sed [选项][定址[命令]] file(s)

    命令和选项如下:

    3.1、sed命令

     

    3.2、sed选项

    补充:

    在sed的命令行中引用shell 变量 时要使用 双引号 ,而不是通常所用的单引号。这根grep一样,双引号会获取变量的值,而单引号只会把变量当做普通字面字符。

    更多可以参考:

    《鸟哥的linux私房菜 基础篇》第12章

  • 相关阅读:
    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
    Tomcat跨域
    Invalid bean definition with name 'dataSource' defined in class path resource [applicationContext.xml]
    网速测试
    程序员实用工具网站
    安装wls报(主清单位置 "/u01/app/oracle/inventory" 无效 (无法读取/写入/执行))
    pom.xml
    CUDA -- 内存分配
    最长上升子序列(LIS: Longest Increasing Subsequence)
    实例化渲染
  • 原文地址:https://www.cnblogs.com/bokejiayuan/p/4370987.html
Copyright © 2020-2023  润新知