05-Sed操作参数(II)
1 Sed操作参数
1.1 q
参数q表示跳离sed
[address1]q
- sed执行跳离动作的时候,会停止输入pattern space数据,同时停止数据送到标准输出文件。
例1
对于文件执行script_file内的编辑指令,除非遇到“Linux”字符串
- 无论script_file内是何种指令,使用者只要在命令行上用指令“/Linux/q”,参数q会强迫sed遇到“Linux”时做跳离动作。
sed -e '/Linux/q' -f script_file input.dat
1.2 =
参数=表示印出资料的行数
[address1,address2]]=
# 显示行号和内容
sed -e '=' input.dat
# 文件内容是
The UNIX
Operating System
# 输出内容是
1
The UNIX
2
Operating System
1.3 #
#用于表示注释
1.4 N
N 表示添加下一条数据在pattern space内,sed在执行时,将下一行数据读入并添加在pattern space内,数据间的换行使用\n表示。使用N相当于每两行进行处理依次,依次向下进行。
n 表示读入下一行,覆盖前一行。
[address1,address2]]N
# 文件内容
The Unix
Operating System
#执行
sed -e 'N' -e's/\n/ /' input.dat
# result
The Unix Operating System
1.5 D
参数D表示删除pattern space中第一行数据
[address1,[address2]]D
- pattern space中只有一行数据的时候,D与d的功能是相同的。
- 当pattern space内有多行数据的时候,D只删除第一行,d则全部删除
- D表示执行删除后,pattern space内不添加下一行数据,将剩下的数据重新执行sed script;
- d则是读入下一行后执行sed script
1.6 P
参数P表示打印出pattern space内第一行资料。
[address1,[address2]]P
例1
输出input.dat文件内奇数行资料。假设input.dat文档如下:
The
Unix
System
# 执行下列命令
sed -e 'N' -e 'P' input.dat
#result
The
System
1.7 h
参数h表示暂存pattern space的资料至hold space
[address1,address2]]h
- sed执行暂存动作时,会覆盖掉hold space内原来的数据。当sed全部执行结束时,hold space内数据会自动清除。
1.8 H
H与h区别是,sed执行h的时候,数据覆盖掉hold space内原来的内容,H会添加hold space原来的数据之后。
H h都是向hold space中添加数据。
1.9 g
参数g表示将hold space内的资料放回pattern space内。
[address1,[address2]g
* g会覆盖pattern space中的原有的数据
1.10 G
G与g都是将hold space中的数据放回pattern space,G是在原有的pattern space原有的数据之后。
1.11 X
参数x表示交换pattern space和hold space中的内容
[address1,[address2]]x
sed -e '1h' -e '3x' input.dat
# 1h--将第一行内容放入hold space
# 3x--当第三行数据出现在pattern space的时候,使用hold space中的数据替换第三行数据
# 也就是用第一行替换第三行
1.12 b、:lable
在sed_script中
.
.
.
编辑命令m1
:记号
编辑命令m2
.
.
.
# 参数与b,在script_file内配合的情况
[address1.[address2]]b[记号]
- 当sed执行至指令[address1,[address2]]b[记号]时,如果pattern space中的数据复合地址参数,则sed将下一个执行的branch至:记号设定的标记处。也就是由m2......进行执行编辑。
- b后面没有记号的时候,则sed将下一个执行的指令branch到script_file的最后。
例1
将input.dat文件内数据行的开头字母重复打印40次,假设input.dat文档中的内容如下:
A
B
C
sed -e '{
:pl #:pl与b pl组成了一个循环
/A/s/A/AA/
/B/s/B/BB/
/C/s/C/CC/
/[ABC]\{40\}/b # /[ABC]\{40\}/b 表示循环终止条件
b pl
}' input.dat
05-Sed操作参数(II)的更多相关文章
- Shell 05 Sed
一.基本用方法 1.sed文本处理工具的用法 用法1:前置命令 | sed [选项] '条件指令' 用法2:sed [选项] '条件指令' 文件.. .. 注意:没有条件时候,默认所有条件, ...
- 作业成绩 final-review 20161201-1203 15:05
final-review阶段,20161201-20161203 15:05 final 评论II截止 20161204 09:00 申诉截止时间 20161207 12:00,微信联系杨贵福. 凡描 ...
- sed命令基本用法
sed是一个非交互式文本编辑器,它可对文本文件和标准输入进行编辑sed 适用于以下三种场合:编辑相对交互式文本编辑器而言太大的文件编辑命令太复杂,在交互式文本编辑器中难以输入的情况对文本扫描一遍,但是 ...
- 分享一例脚本发版和tomcat重启脚本
线上有个网站业务部署在tomcat上,由于频繁上线修改,需要经常启动tomcat.tomcat服务自带的bin下没有重启脚本,下面分享一例脚本发版和tomcat重启脚本: 1)现将业务代码从svn里下 ...
- CiteSeer统计的计算机领域的期刊和会议的影响因子(2005)
产生自CiterSeer 2005数据库,实际的影响因子可能更高.仅供参考使用.真实的IF还需去官网查看 . OSDI: 3.31 (top 0.08%) . USENIX Symposium on ...
- Shell脚本字符串匹配及日常命令工具 - 用法总结(技巧指南)
Shell提供了很多字符串和文件处理的命令,如awk.expr.grep.sed等命令,还有文件的排序.合并和分割等一系列的操作命令.下面重点总结下Shell字符串处理.文本处理以及各类命令及函数用法 ...
- 代码随想录第八天 |344.反转字符串 、541. 反转字符串II、剑指Offer 05.替换空格 、151.翻转字符串里的单词 、剑指Offer58-II.左旋转字符串
第一题344.反转字符串 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这 ...
- 【遍历二叉树】05二叉树的层次遍历II【Binary Tree Level Order Traversal II】
就把vector改成用栈类存放层次遍历的一层的序列 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- Linux查找命令:grep,awk,sed
grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...
- A Simple OpenGL Shader Example II
A Simple OpenGL Shader Example II eryar@163.com Abstract. The OpenGL Shading Language syntax comes f ...
随机推荐
- MassTransit | .NET 分布式应用框架
引言 A free, open-source distributed application framework for .NET. 一个免费.开源的.NET 分布式应用框架. -- MassTran ...
- 基于Seq2Seq和注意力机制的句子翻译
Seq2Seq(Attention) 目录 Seq2Seq(Attention) 1.理论 1.1 机器翻译 1.1.1 模型输出结果处理 1.1.2 BLEU得分 1.2 注意力模型 1.2.1 A ...
- C#实现生成Markdown文档目录树
前言 之前我写了一篇关于C#处理Markdown文档的文章:C#解析Markdown文档,实现替换图片链接操作 算是第一次尝试使用C#处理Markdown文档,然后最近又把博客网站的前台改了一下,目前 ...
- 【vue2】Style和Class,条件,列表渲染,双向数据绑定,事件处理
目录 1.style和class 2. 条件渲染 2.1 指令 2.2 案例 3. 列表渲染 3.1 v-for:放在标签上,可以循环显示多个此标签 3.2 v-for 循环数组,循环字符串,数字,对 ...
- Oracle中查询表结构的六种方法
首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...
- easyclick 学习
什么是EC EasyClick 写自动化脚本,使用的编辑器 Idea 运行模式有两种:无障碍模式.代理模式 注释 三种类型: 1./** 对程序作介绍,解释说明用 / 2./* 多行注释 第二行 / ...
- SpringBoot 08: SpringBoot综合使用 MyBatis, Dubbo, Redis
业务背景 Student表 CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COL ...
- jdk线程池ThreadPoolExecutor优雅停止原理解析(自己动手实现线程池)(二)
jdk线程池工作原理解析(二) 本篇博客是jdk线程池ThreadPoolExecutor工作原理解析系列博客的第二篇,在第一篇博客中从源码层面分析了ThreadPoolExecutor在RUNNIN ...
- centos7 uwsgi 加入系统服务
生产环境中采用nginx + uwsgi + django 来部署web服务,这里需要实现uwsgi的启动和停止,简单的处理方式可以直接在命令行中启动和kill掉uwsgi服务,但为了更安全.方便的管 ...
- 使用位运算优化 N 皇后问题
使用位运算优化 N 皇后问题 作者:Grey 原文地址: 博客园:使用位运算优化 N 皇后问题 CSDN:使用位运算优化 N 皇后问题 问题描述 N 皇后问题是指在 n * n 的棋盘上要摆 n 个皇 ...