Shell-08-文本处理sed
文本处理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的更多相关文章
- linux shell 修改文本 sed
linux shell 修改文本echo [root@DSI tmp]# echo 'yhqt1 test1' > test1.txt [root@DSI tmp]# cat test1.txt ...
- Shell 编程 文本处理工具 sed
本篇主要写一些shell脚本文本处理工具sed的使用. 概述 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加 ...
- Shell 基础 -- 流编辑器 sed 详解
一.流编辑器 sed 与命令 sed Linux 中,常使用流编辑器 sed 进行文本替换工作.与常使用的交互式编辑器(如vim)不同,sed 编辑器以批处理的方式来编辑文件,这比交互式编辑器快得多, ...
- Linux Shell处理文本最常用的工具大盘点
导读 本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk:提供的例子和参数都是最常用和最为实 ...
- Shell awk文本处理,shell脚本编写
Shell awk文本处理,shell脚本编写 一:内容包含awk.变量.运算符.if多分支 <a>语法糖: awk [options] 'commands' files option - ...
- shell 删除文本中的重复行
三种常见方法:第一,用sort+uniq,注意,单纯uniq是不行的. shell> sort -k2n file | uniq > a.out 这里我做了个简单的测试,当file中的重复 ...
- SHELL用法七(Sed语句)
1.SHELL编程Sed语句案例实战 1)SHELL编程四剑客之二的Sed工具,主要是用于Linux系统文本文件的编辑. 打印的,也称为非交互模式编辑器(vi|vim交互模式编辑器),Sed工具的语法 ...
- iOS系列 基础篇 08 文本与键盘
iOS系列 基础篇 08 文本与键盘 目录: 1. 扯扯犊子 2. TextField 3. TextView 4. 键盘的打开和关闭 5. 打开/关闭键盘的通知 6. 键盘的种类 7. 最后再扯两句 ...
- 文本处理sed常用操作
文本处理sed常用操作 linux sed (stream editor) is a Unix utility that parses and transforms text, using a sim ...
- [转] 利用shell创建文本菜单与窗口部件的方法
[From] http://www.jb51.net/article/129460.htm 前言 创建交互式shell脚本最常用的方法是使用菜单.提供各种选项可以帮助脚本用户了解脚本能做什么,不能做什 ...
随机推荐
- iOS 针对txt文档进行解码
如我上一篇文章记录,我加了打开其他APPtxt文件的小功能,紧接着碰到新问题了,我在测试过程中发现用户上传的TXT编码格式很多不单单是utf-8和gb2312,针对TXT文档进行解码,我一共经历过两个 ...
- Spring中这么重要的AnnotationAwareAspectJAutoProxyCreator类是干嘛的?
大家好,我是冰河~~ 停更了很久的[Spring注解系列]专题,终于重新更新了,我们还是接着之前的文章继续往下更新.在<[Spring注解驱动开发]二狗子让我给他讲讲@EnableAspectJ ...
- Linux环境Nginx安装、调试以及PHP安装(转)
linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5 1.编译安装Nginx 官网:http://wiki.nginx.org/Install ...
- USB数据线 单独供电
USB数据线上剪掉两个电源线,只保留两个是数据就无法传数据了.数据线传输数据需要通过芯片来进行数据交换,芯片的工作离不开电源,没有电源,芯片无法工作,当然也就无法传输数据了.电源线特别是负极线,同时还 ...
- Installation failed with message INSTALL_FAILED_TEST_ONLY问题
Android Studio连接手机进行app调试,遇到如下问题: Installation failed with message INSTALL_FAILED_TEST_ONLY. It is p ...
- 求数组的子数组之和的最大值II
这次在求数组的子数组之和的最大值的条件下又增加了新的约束: 1.要求数组从文件读取. 2.如果输入的数组很大, 并且有很多大的数字, 就会产生比较大的结果 (考虑一下数的溢出), 请保 ...
- SpringBoot 整合 MybatisPlus 3.0
CRUD是指在做计算处理时的增加(Create).读取查询(Retrieve).更新(Update)和删除(Delete)几个单词的首字母简写.主要被用在描述软件系统中DataBase或者持久层的 ...
- HelloWord!
HelloWorld 1.新建一个文件夹,存放代码 2.新建一个java文件后缀为.java Hello.java (注意后缀 如系统没打开显示后缀需要打开) 3.编写HelloWorld代码 (建议 ...
- 安装react后运行报错
错误提示:npm WARN checkPermissions Missing write access to C:\Users\LXD\Desktop\webpack-base\node_module ...
- 使用mvn命令将pom和jar上传至nexus私服
要将自定义的jar或者pom上传至nexus私服,需要配置maven的settings文件! 上传至nexus私服配置 1. settings配置 <!-- maven设置私服对应的信息:id. ...