sed 小结
语法格式1:
sed option command file
注意区分 option command,
option 以-开始
command 以单?引号包围 ———— 这完全是误会, 我测试好多后发现, 引起很多时候完全可以去掉,只有在当可能引起歧义的时候, 才需要引号
command 里面的表达式默认格式为/re1/re2/
不同于tr的基于字符,它是基于字符串的,如
sed -i s'/vw/in/' temp.txt 就是说vw在作为一个元素来匹配的,然后整体替换为in
通过-i可以将替换写入temp.txt
sed s'/^in.*/va/' temp.txt 表示以in开头,而不是以i或者n开头。
如果 * 前面不跟一个“.”,则表示对前面的字母的重复。
sed s'/in*/va/' temp.txt
从文件读入:r命令
$ sed '/test/r file' example-----file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。
写入文件:w命令
$ sed -n '/test/w file' example-----在example中所有包含test的行都被写入file里。
追加命令:a命令
$ sed '/^test/a\\--->this is a example' example<-----'this is a example'被追加到以test开头的行后面,sed要求命令a后面有一个反斜杠。
command 命令r w a 还是有些不懂
特别是有些command可以放在re1前面,又可以re2后面。
总结:
对应command,格式应该是
[scope]紧接operation+[pattern] scope可选,如果没有scope则表示遍历所有行 紧接是说,不能有任何其他字符,包括空格(引号除外) pattern可选,对某些操作是必须的
scope如何表示?
用行号表示:
1,3 第一到第三行
2,%第二到文尾
用正则表达式regx表示:
/hello/ 所有包含hello的行
/^hello/ 所有以hello开头的行
。。。
operation 有哪些:
s 替换 格式固定为 s/reg1/reg2/
d删除
a 追加 格式为 a\ sthnew 或者 ’a sthnew’
c\ 整行替换
w
r
i插入
= 列出行号
什么时候需要引号?
这个时候:
sed /temp/a\ sthnew sedtest.txt 不需要
如果sed /temp/’a sthnew‘ sedtest.txt 则需要, 因为a\ 变成了a
sed /temp/'w aa.txt' sedtest.txt 因为w aa.txt之间有空格 对于r参数也一样
参见
http://www.cnblogs.com/erichhuang/archive/2012/03/13/2394108.html
http://www.cnblogs.com/lovemo1314/archive/2011/09/30/2196841.html
sed 小结的更多相关文章
- 自学Linux Shell18.2-sed编辑器高级特性
点击返回 自学Linux命令行与Shell脚本之路 18.2-sed编辑器高级特性 linux世界中最广泛使用的两个命令行编辑器: sed gawk 1. sed小结 命令格式: 1 sed [opt ...
- sed用法小结
简介: sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区 ...
- Linux中使用sed命令替换字符串小结
sed替换的基本语法为: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义,但是单引号”‘”是没有办法用反斜线”\”转义的 ...
- Shell之sed用法 转滴
通过例子学习sed的用法 1,sed介绍 sed可删除(delete).改变(change).添加(append).插入(insert).合.交换文件中的资料行,或读入其它档的资料到 文> ...
- Sed文本替换一例
使用 Sed 完成文本替换操作任务是非常合适的. 现在, 假设我要将一个原有 Java 项目中的一些包及下面的类移到另一个项目中复用. Project javastudy: Packages: alg ...
- 常用Linux命令小结
常用Linux命令小结 Linux下有很多常用的很有用的命令,这种命令用的多了就熟了,对于我来说,如果长时间没有用的话,就容易忘记.当然,可以到时候用man命令查看帮助,但是,到时候查找的话未免有些临 ...
- Linux命令学习计划【sed】
引言: Sed命令是linux里用于文本行处理的命令. 为了便于说明,我在/usr/dict下创建了字典words并以此作为演示模板 先用nl 打印下words内容: *打印篇: Q1:如何打印某一行 ...
- 《Linux命令行与shell脚本编程大全》第十九章 初识sed和gawk
这两个工具能够极大简化需要进行的数据处理任务. 19.1 文本处理 能轻松实现自动格式化.插入.修改或删除文本元素的简单命令行编辑. sed和gawk就具备上述功能 19.1.1 sed编辑器 被称为 ...
- 来聊一聊不low的Linux命令——find、grep、awk、sed
前几天面试,被一位面试官嫌弃了"你的Linux命令有点low".被嫌弃也挺正常的,因为我的简历写的我自己都有点看不下去:了解Linux常用命令,如ls,tail -f等命令,基本满 ...
随机推荐
- 【maven】使用import scope解决maven继承(单)问题
测试环境 maven 3.3.9 想必大家在做SpringBoot应用的时候,都会有如下代码: <parent> <groupId>org.springframework.bo ...
- Linux驱动中常用的宏
.module_i2c_driver(adxl34x_driver)展开为 static int __int adxl34x_driver_init(void) { return i2c_regist ...
- POJ2392 Space Elevator
题目:http://poj.org/problem?id=2392 一定要先按高度限制由小到大排序! 不然就相当于指定了一个累加的顺序,在顺序中是不能做到“只放后面的不放前面的”这一点的! 数组是四十 ...
- Java 接口 interface implements
接口定义了一系列的抽象方法和常量,形成一个属性集合. 接口定义完成后任何类都可以实现接口,而且一个类可以实现多个接口. 实现接口的类必须实现接口中定义的抽象方法,具体实现细节由类自己定义.可以说接口定 ...
- 【python】常用的一些内置函数
1.cmp cmp(A,B)函数,比较A,B的大小,如果A大于B,返回1,A小于B返回-1,A等于B返回0 print cmp(12,33) >>>-1 print cmp(&quo ...
- WinRAR打包时不包含文件夹本身,只打包文件夹里的文件和目录
加上-ep1 参数即可. rar u -m3 -s -r -o+ -ep1 -x*.zip client_zmv9.zip ".\client_zmv9\*"
- 快速接入PHP微信支付
微信支付是微信开发中坑最多的一个功能,本文旨在帮助有开发基础的人快速接入微信支付,如果要详细了解微信支付,请看微信支付的开发文档. 再说把开发文档搬到这里来就没必要了.想要快速跑通微信支付的可以继续查 ...
- Selenium2+python自动化42-判断元素(expected_conditions)
前言 经常有小伙伴问,如何判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_conditions模块收集了一系列的场景判断方 ...
- 安卓秘钥生成命令以及SHA1值获取办法
切换到秘钥所在目录,例如:cd C:\Program Files\Java\jdk1.8.0_171\bin 执行命令:keytool -genkey -alias demo.keystore -ke ...
- 【Active入门-2】ActiveMQ学习-生产者与消费者
1个生产者,1个消费者,使用Queue: 方式1: 生产者将消息发送到Queue中,退出: 然后运行消费者: . 可以看到,可以接收到消息. 方式2: 先运行消费者程序: 然后运行生产者: 消费者见下 ...