sed

1、简介

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间。这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。 主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。

2、用法

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

3、选项

  • -n:不输出模式空间的内容到屏幕
  • -f SCRIPT_FILE:读取文件中的sed脚本来处理文本
  • -r:使用扩展的正则表达式
  • -i:直接修改原文件,-i,bak 可以先备份原文件
  • -e:sed -n -e 'script1' -e 'script2' 多点编辑,可以多个脚本一块处理文本

4、sed脚本

地址定界

  • 不指定地址默认为对全文处理
  • n:指定第n行
  • /PATTERN/:被PATTERN匹配到的每一行
  • m,n:从m到n行
  • m,+n:从m行开始往后n行
  • /PAT1/,/PAT2/:从被PAT1匹配到的行开始到被PAT2匹配到的行
  • n,/PAT/:从指定n行开始到被匹配到的行
  • ~:步进,比如1~2,从第一行开始每次跳2行,则表示奇数行

编辑命令

一.常用编辑命令

  • d:删除
  • p:打印
  • a [\]文本:将文本追加到指定行的下一新行
  • i [\]文本:将文本追加到指定行的上一新行
  • c [\]文本:将匹配到的字符串修改为文本字符串
  • w newfile:将匹配到的行另存为新文件
  • r oldfile:将文件中的内容读入模式空间并追加至被匹配到行的行后
  • =:显示行号
  • !:地址定界取反
  • s:查找替换s/待修改文本/修改文本/修饰符,分隔符也可用@、,、#等

    • g:全行替换
    • p:将修改后的文本打印到屏幕
    • w newfile:将替换成功的行另存为至新文件

二.高级编辑命令

  • P:
  • x:
  • h:
  • H:
  • g:
  • G:
  • n:
  • N:
  • d:
  • D:

记录于2018.4.12 15:08

文本处理三剑客之sed的更多相关文章

  1. 文本处理三剑客之sed命令

    第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...

  2. 文本处理三剑客之 Sed ——一般编辑命令

    sed简介 sed (stream editor for filtering and transforming text) 是Linux上的文本处理三剑客之一,另外两个是grep和awk. sed又称 ...

  3. Linux文本处理三剑客之sed

    推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...

  4. 文本处理三剑客之 sed详解

    1.简介 sed是非交互式的编辑器,它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...

  5. 文本处理三剑客之 sed

    sed:文本流编辑器 主要是对文件的快速增删改查,查询功能中最常用的是过滤,取行 sed [选项] [sed内置命令字符] [输入文件] Options: -n:取消默认的sed输出,常与sed内置命 ...

  6. 文本处理三剑客之 Sed ——高级编辑命令

    本篇介绍sed的高级编辑命令 高级编辑命令 P:打印模式空间开端至\n内容,并追加到默认输出之前 n: 读取匹配到的行的下一行覆盖至模式空间 N:读取匹配到的行的下一行追加至模式空间 h: 把模式空间 ...

  7. 4.shell编程-文本处理三剑客之sed

    4.1.sed的选项 sed,流编辑器.对标准输出或文件进行逐行处理. 语法格式 第一种:stdout | sed [option] "pattern command" 第二种:s ...

  8. Linux 文本处理三剑客之grep

    文本处理都要使用正则表达式,正则表达式有: 基本正则表达式:grep或者egrep -G 扩展正则表达式:egreo或者grep -E Linux 文本处理三剑客: sed:stream editor ...

  9. shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)

    文本处理三剑客:1.grep  2.sed  3.awk 一.grep:(过滤) grep的使用,主要的参数有: -n  :显示行号:-o  :只显示匹配的内容-q  :静默模式,没有任何输出,得用e ...

随机推荐

  1. generator生成器iterator遍历器和yield

    generator方法()返回一个iterator 使用generator时永远先去调用generator()方法 for of对iterator的调用过程(babel参照) 1,_iterator. ...

  2. C语言第六次作业--数据类型

    一.PTA实验作业 题目1,简单计算器: 1. 本题PTA提交列表 2. 设计思路 定义操作数num1,num2,结果result=0.运算符ch. 输入num1 while (ch=getchar( ...

  3. Lucene-02:搜索初步

    承接上一篇文章. package com.amazing; import java.io.File; import java.io.IOException; import org.apache.luc ...

  4. 使用SQLiteOpenHelper类对数据库简单操作

    实现数据库基本操作       数据库创建的问题解决了,接下来就该使用数据库实现应用程序功能的时候了.基本的操作包括创建.读取.更新.删除,即我们通常说的CRUD(Create, Read, Upda ...

  5. 鹅厂优文 | 怎样用AI运维

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由 织云平台团队 团队发布在腾讯云+社区 诞生背景 最近这些年,运维行业提出了不少概念,各种各样的"XX运维"可以说 ...

  6. OSM数据下载地址

    1.OSM数据下载地址 官网下载: http://planet.openstreetmap.org/ GeoFabrik:http://www.geofabrik.de/ Metro Extracts ...

  7. 连接数据后,当执行查询语句报错:ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询

    参考博客:http://blog.csdn.net/lanchengxiaoxiao/article/details/40982771 1.在cmd窗口通过sqlplus连接数据库 C:\Users\ ...

  8. 关于如何在mac系统上安装Git并在码市上建立项目

    对Git一窍不通,为了在mac系统上安装Git,查了很多资料,走了很多弯路,一切搞定后发现其实很简单. 1.在https://brew.sh上按要求安装Homebrew. 2.在电脑终端键入brew ...

  9. alpha-咸鱼冲刺day5-紫仪

    总汇链接 一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 !!!QAQ可以做到跟数据库交互了!!!!先来撒花花!(然后继续甲板) 四,问题困难   日常啥都不会,百度真心玩一年 ...

  10. 20162328蔡文琛week04

    学号 20162328 <程序设计与数据结构>第4周学习总结 教材学习内容总结 本周学习了第四章和第七章,第四章中的内容已经有了初步定的掌握,布尔表达式的运用,是条件和循环语句的基础及数组 ...