文本处理sed

sed:流编辑器,过滤和替换文本

工作原理:sed命令将当前处理的行读入模式空间进行处理,处理完把结果输出,并且清空模式空间。
然后再将下一行读入模式空间进行处理输出,以此类推,直到最后一行

常用参数

示例

依据以下文本内容作为示例

匹配打印(p)

1 打印匹配blp5开头的行

2 打印第一行

3 打印1~3行

4 打印奇数行和偶数行

5 打印匹配行以及后一行

6 打印最后一行 单引号会忽略特殊字符

7 不打印最后一行 感叹号是对后面的命令取反

8 匹配范围

范围模式匹配,下一个匹配到第一个就不匹配了

匹配开头到最后一行

9 引用系统变量,用引号

总结:
sed命令用单引号时,里面变量用单引号引起来,或者sed命令用双引号,因为双引号解释特殊符号原有意义

匹配删除(d)

1 删除匹配到bpl5字符的行

2 删除第一行

3 删除奇数行

4 删除第1行到第3行

5 去除空行 或 # 开头的 行

替换(s///)

1 blpt字符串替换为test

全局替换加 g

2 替换 blp5字符串 并打印

3 使用 & 命令引用匹配类容并且替换

4 IP加引号

5 对1-5行的 blp5 进行替换

6 对匹配的行进行替换

7 二次匹配替换

8 分组使用

第一列,第二列 是第一个小括号匹配,第3列是第2个小括号匹配

再通过 \数字 按分组顺序调用即可

9 将协议与端口号位置调换

10 去除开头和结尾空格或制表符

多重编辑(e)

可以使用-e参数,也可以使用分号分隔

添加新类容(a、i、c)

1 在blp5上一行添加新类容

2 在blp5下一行添加新类容

3 将blp5 替换新行

4 在指定行{下一行|上一行}添加一行

读取文件并追加到匹配行后(r)

将匹配行写到文件(w)

读取下一行(n和N)

n 读取 下一行 到模式空间
N 追加 下一行 内容到模式空间,并且以换行符 \n 分割

1 打印匹配的下一行

2 打印偶数

sed 先读取第一行 1 ,执行 n 命令,获取下一行2,此时模式空间是 2  ,执行p打印命令,打印模式空间。
现在模式空间是2 ,sed 再读取3,执行 n 命令,获取下一行4 ,此时模式空间是4 ,执行p命令打印。以此类推!

3 删除偶数行

忽略大小写匹配(I )

获取总行数(#)

Shell-08-文本处理sed的更多相关文章

  1. linux shell 修改文本 sed

    linux shell 修改文本echo [root@DSI tmp]# echo 'yhqt1 test1' > test1.txt [root@DSI tmp]# cat test1.txt ...

  2. Shell 编程 文本处理工具 sed

    本篇主要写一些shell脚本文本处理工具sed的使用. 概述 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加 ...

  3. Shell 基础 -- 流编辑器 sed 详解

    一.流编辑器 sed 与命令 sed Linux 中,常使用流编辑器 sed 进行文本替换工作.与常使用的交互式编辑器(如vim)不同,sed 编辑器以批处理的方式来编辑文件,这比交互式编辑器快得多, ...

  4. Linux Shell处理文本最常用的工具大盘点

    导读 本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk:提供的例子和参数都是最常用和最为实 ...

  5. Shell awk文本处理,shell脚本编写

    Shell awk文本处理,shell脚本编写 一:内容包含awk.变量.运算符.if多分支 <a>语法糖: awk [options] 'commands' files option - ...

  6. shell 删除文本中的重复行

    三种常见方法:第一,用sort+uniq,注意,单纯uniq是不行的. shell> sort -k2n file | uniq > a.out 这里我做了个简单的测试,当file中的重复 ...

  7. SHELL用法七(Sed语句)

    1.SHELL编程Sed语句案例实战 1)SHELL编程四剑客之二的Sed工具,主要是用于Linux系统文本文件的编辑. 打印的,也称为非交互模式编辑器(vi|vim交互模式编辑器),Sed工具的语法 ...

  8. iOS系列 基础篇 08 文本与键盘

    iOS系列 基础篇 08 文本与键盘 目录: 1. 扯扯犊子 2. TextField 3. TextView 4. 键盘的打开和关闭 5. 打开/关闭键盘的通知 6. 键盘的种类 7. 最后再扯两句 ...

  9. 文本处理sed常用操作

    文本处理sed常用操作 linux sed (stream editor) is a Unix utility that parses and transforms text, using a sim ...

  10. [转] 利用shell创建文本菜单与窗口部件的方法

    [From] http://www.jb51.net/article/129460.htm 前言 创建交互式shell脚本最常用的方法是使用菜单.提供各种选项可以帮助脚本用户了解脚本能做什么,不能做什 ...

随机推荐

  1. 『无为则无心』Python函数 — 27、Python函数的返回值

    目录 1.返回值概念 2.return关键字的作用 3.返回值可以返回的数据类型 4.函数如何返回多个值 5.fn5 和 fn5()的区别 6.总结: 1.返回值概念 例如:我们去超市购物,比如买饮料 ...

  2. gitlab git 安装

    1.配置yum源 vim /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] name=Gitlab CE Repository baseurl=https://m ...

  3. Acunetix临时扫描是不够的

    Web漏洞扫描程序通常被视为即席工具.最初,所有漏洞扫描程序都是这种工具,并且当前的开源Web应用程序安全解决方案仍遵循该模型.但是,随着Web技术的复杂性和可用性的大幅增加,临时模型已经过时,无法满 ...

  4. 咋滴,不就是面试总考Spring的AOP吗,办它!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 为什么,你的代码总是糊到猪圈上? 怎么办,知道你在互联网,不知道你在哪个大厂.知道你 ...

  5. Vue中watch与computed的区别

    一. 计算属性(computed) 1.计算属性是为了模板中的表达式简洁,易维护,符合用于简单运算的设计初衷.对于运算过于复杂,冗长,且不好维护,因此我们对于复杂的运算应该 使用计算属性的方式去书写. ...

  6. Python报错“UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)”的解决办法

    最近在用Python处理中文字符串时,报出了如下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ...

  7. python 动态指定header获取网页源代码的函数

    import random import requests def get_htmla(url): aui=0 while aui==0: try: header={'User-Agent':'Moz ...

  8. C语言:宏定义 本质及体现

  9. Java基础00-函数式接口33

    1. 函数式接口 1.1 函数式接口概述 代码示例: 定义一个接口: //次注解表示该接口为函数式接口,只能有一个抽象方法,如果有第二个就会报错. @FunctionalInterface publi ...

  10. [iconfont_dart]帮你快速生成Icon,再也不用手动写Icon方法

    iconfont_dart iconfont to dart.Icon can be implemented by calling iconfont classname. iconfont转dart. ...