sed 命令(2)
sed命令的使用
sed删除命令的使用:
sed '/My/,/You/d' datafile
#删除包含"My"的行到包含"You"的行之间的行
sed '/My/,10d' datafile (删除包含"My"的行到第十行的内容)
Sed ‘s/a//g’ datafile(删除包含a的内容)
sed添加操作:
sed '1a drink tea' pers (在第一行后面添加drink tea)
sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea"
sed '1a drink tea\nor coffee' ab #第一行后增加多行,使用换行符\n
Sed -i ‘$a bye’ ab(在最后一行添加bye)
Sed替换操作
sed '1c Hi' ab #第一行代替为Hi
替换一行中的某部分
格式:sed 's/要替换的字符串/新的字符串/g' (此处的/g表示全局替换)
sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替换ruby为bird (先打印ruby这一行内容,然后将ruby替换成bird)
-n:只打印匹配的内容
-e是编辑命令,用于sed执行多个编辑任务的情况下
sed -e '1,10d' -e 's/My/Your/g' datafile
选项-e用于进行多重编辑。第一重编辑删除第1-3行。第二重编辑将出现的所有My替换为Your
/pattern/pattern/ 查询包含两个模式的行,如/disk/disks/
/pattern/,x 在给定行号上查询包含模式的行,如/disk/,3
x,/pattern/ 通过行号和模式查询匹配行,如 3,/disk/
x,y! 查询不包含指定行号x和y的行
打印行号: sed -e '/music/=' temp.txt
Sed -i “1i abc” file(在第一行之前插入abc)
Sed -i “1a abc” file(在第一行之后插入abc)
sed -i "1c ABC" pers(把第一行替换成ABC)
sed '/^A/i\aaaaaaaaaaaa' pers(在匹配行之前加入一行)
sed '/^A/a\aaaaaaaaaaaaa' pers(在匹配行之后加入一行)
sed '/ABC/c\aaaaaaaaaaaaa' pers(用新的一行替换匹配ABC的行)
sed 's/ABC/abc/' pers(将ABC替换成abc,并输出到屏幕上)
sed -i 's/ABC/abc/' pers (修改的是源文件)
sed 'y/a/A/' pers(将a替换成A)
sed 'y/a b/A B/' pers(将a替换成A,将b替换成B)
sed -e 's/w1/& w2/g' file
G:代表替换所有,这里将文件中的所有w1替换成w1 w2
位置参数应用举例:
sed -e '/machine/s/phi/beta/g' file
将文件中含"machine"字串的资料行中的"phi"字串,替换成为"beta"字串
sed -e '1,10 s/w1/& w2/g' file
把1到10内的w1字符串替换成w1 w2字符串。
sed -e '1,/else/ s/w1/& w2/g' file
把1到字符串else内的w1字符串替换成w1 w2字符串
#代表删除从前往后最小匹配的内容
%代表删除从后往前最小匹配的内容
zcat:命令的使用
提取子串
${string:position}
在 string 中从位置$position 开始提取子串.
如果$string 为"*"或"@",那么将提取从位置$position 开始的位置参数,[1]
${string:position:length}
在 string 中从位置$position 开始提取$length 长度的子串.
子串替换
${string/substring/replacement}
使用$replacement 来替换第一个匹配的$substring.
${string//substring/replacement}
使用$replacement 来替换所有匹配的$substring.
${string/#substring/replacement}
如果$substring 匹配$string 的开头部分,那么就用$replacement 来替换$substring.
${string/%substring/replacement}
如果$substring 匹配$string 的结尾部分,那么就用$replacement 来替换$substring.
Bash 的第一个字符是从'0'开始记录的.
9 # Awk 的第一个字符是从'1'开始记录的.
Sed表达式可以用单引号来引用,但如果是表达式内部包含变量字符串,就需要使用双引号
sed 命令(2)的更多相关文章
- 文本处理三剑客之sed命令
第十八章.文本处理三剑客之sed命令 目录 sed介绍 sed命令常用选项 sed常用编辑命令 sed使用示例 sed高级语法 18.1.sed简介 sed全名stream editor,流编辑器,s ...
- linux shell 用sed命令在文本的行尾或行首添加字符
转自 http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html 昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed ...
- linux sed命令详解
简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...
- sed命令详解
搜索 纠正错误 添加实例 sed 功能强大的流式文本编辑器 补充说明 sed 是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时 ...
- Linux安全基础:sed命令的使用
sed 是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作. Sed本质上是一个编辑器,但是它是非交互式的,这点与VIM不同:同时 ...
- [转]sed命令详解
转载:http://blog.chinaunix.net/u/22677/showart_1076318.html 1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保 ...
- sed命令
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...
- sed 命令使用
ios 的sed 命令 跟linux sed 命令有区别 # 所有的a 替换成b sed -i "" 's/a/b/g' #删除掉所有包含a的行 sed -i "/a/ ...
- sed命令给文本文件的每行的行首或者行尾添加文字
在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' test.file 在每行的行尾添加字符,比如“TAIL”,命令如下: sed 's/ ...
- Linux的sed命令
一.初识sed 在部署openstack的过程中,会接触到大量的sed命令,比如 # Bind MySQL service to all network interfaces.sed -i 's/12 ...
随机推荐
- H5完美适配刘海屏和状态栏高度的全机型解决方案攻略
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- C#之MethodImpl(MethodImplOptions.Synchronized)
[MethodImpl(MethodImplOptions.Synchronized)] 是 C# 中用于指定方法同步的一个特性,它控制方法的执行方式,确保在多线程环境下某个方法的执行是线程安全的.它 ...
- wso2~对接外部认证系统keycloak
在 WSO2 Identity Server 或 WSO2 API Manager 中,Identity Providers (身份提供者) 功能允许您将外部身份管理系统(如 Keycloak.Azu ...
- 【语义分割专栏】:FCN原理篇
目录 前言 语义分割 背景介绍 FCN核心剖析 全卷积(Fully Convolution) 反卷积(deconvolution) 最近邻插值法 双线性插值 反卷积 跳跃连接(Skip Connect ...
- pythonnet VS csnake:穿针引线,中西合璧——最强Python & .NET互操作对决
Hello,亲爱的小伙伴们!你是否曾经在深夜里,为了自动化点外卖.筛机票.抓网页数据焦头烂额?有没有幻想过哪天能出个"贴心AI管家",一键点菜.搞定事务.自动操作网页,比你还懂你? ...
- 10年+.NET Coder 心语 ── 单一职责原则的思维:为什么你的代码总在"牵一发而动全身"
引言 在编程的世界里,面向对象设计(Object-Oriented Design, OOD)就像盖房子时打下的地基,决定了一个系统是否稳固.耐用.而在众多设计原则中,单一职责原则(Single Res ...
- Jackson反序列化抛异常:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field的解决方法
目录 需求背景 问题分析 问题解决 使用注解@JsonIgnoreProperties ObjectMapper对象配置FAIL_ON_UNKNOWN_PROPERTIES 需求背景 第三方服务返 ...
- Vue3+Ts笔记:基于element-UI 实现下拉框滚动翻页查询通用组件
element 提供了 el-select组件,并且支持远程搜索,但是对于数据量大需要翻页的场景并未提供相应配置,所以自己写了一个通用组件,作为记录 初始化控件,定义传入参数 将远程查询的接口封装为函 ...
- 【中英】【吴恩达课后测验】Course 5 - 序列模型 - 第一周测验
[中英][吴恩达课后测验]Course 5 -序列模型 - 第一周测验 - 循环神经网络 上一篇:[课程4 - 第四周编程作业]※※※※※ [回到目录]※※※※※下一篇:[待撰写-课程5 -第一周编程 ...
- 再不用手写Commit!AI自动总结代码变更,Git提交效率
背景 今天写完代码后, commit到git仓库, 让我写提交信息时, 突然发现了些问题 1.发现git commit 经常很难描述清晰 在写后面的message, 如: git commit -m ...