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脚本最常用的方法是使用菜单.提供各种选项可以帮助脚本用户了解脚本能做什么,不能做什 ...
随机推荐
- 解决MyEclipse一直在Updating indexes的文题
Updating indexes是Maven在下载更新,这个需要手动去设置即可: Window --> Preferences --> Maven4MyEclipse --> 去除 ...
- java设计模式(9):模板方法模式(TemplateMethod)
一,定义:模板方法模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 二,类图: 三,通过小例子讲解: 这个模式一般用在 ...
- 【重学Java】IO流
IO流的UML类图 File类 File类概述和构造方法[应用] File类介绍 它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在 ...
- Nginx的安装和部署
Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发 ...
- DL基础补全计划(三)---模型选择、欠拟合、过拟合
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- C++ 标准模板库(STL)——迭代器(iterators)的用法及理解
C++ STL中迭代器(iterators)用于遍历对象集合的元素.由于容器大小随着插入删除等操作动态改变,无法像静态数组那样获取数组长度然后遍历容器里的所有元素:这时就需要迭代器,每次从容器内第一个 ...
- spring pom文件报错:提示no declaration can be found for element 'dubbo:service'.
转自:http://blog.csdn.net/happylife_haha/article/details/52755425 pom文件报错:The matching wildcard is str ...
- 【剑指offer】73.数组中出现次数超过一半的数字
73.数组中出现次数超过一半的数字 知识点:数组:哈希:占领地思想: 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4 ...
- Spark—RDD编程常用转换算子代码实例
Spark-RDD编程常用转换算子代码实例 Spark rdd 常用 Transformation 实例: 1.def map[U: ClassTag](f: T => U): RDD[U] ...
- shell脚本(6)-shell数组
一.数组介绍 一个变量只能存一个值,现实中很多值需要存储,可以定义数组来存储一类的值. 二.基本数组 1.概念: 数组可以让用户一次性赋予多个值,需要读取数据时只需通过索引调用就可以方便读出. 2. ...