一分钟sed入门
【转载于58同城沈剑】
1.简介
sed是一种行编辑器,它一次处理一行内容。
2.sed调用方式
sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
第一种直接在命令行中执行,第二种把命令写到了脚本中,二者无本质区别。
示例(1):打印hello.txt的内容
sed -n p hello.txt
说明:
-n:sed会在处理一行文本前,将待处理的文本打印出来,-n参数关闭了这个功能
p:命令表示打印当前行
hello.txt:待处理的文件
这个指令相当于cat
3.定址
告诉sed你期望处理的行,由逗号分隔的两个数字表示,$符号表示最后一行;
当然也可以使用正则来定位期望处理的行。
示例(2):打印hello.txt的第二行到最后一行
sed -n '2,$'p hello.txt
示例(3):打印hello.txt中正则匹配"100"的行
sed -n '/100/'p hello.txt
4.基本命令
hello.txt的内容为
1 2 3
10 20 30
100 200 300
命令:a\
在匹配行的后面加入一行文本
示例(4)匹配100的行,后面加入一行"new line"
sed '/100/'a\ "new line" hello.txt
输出内容为:
1 2 3
10 20 30
100 200 300
new line
命令:i\
在匹配行的前面加入一行文本
示例(5)匹配100的行,前面加入一行"new line"
sed '/100/'i\ "new line" hello.txt
输出内容为:
1 2 3
10 20 30
new line
100 200 300
命令:c\
将匹配行替换为目的行
示例(5)匹配100的行,替换为"new line"
sed '/100/'c\ "new line" hello.txt
输出内容为:
1 2 3
10 20 30
new line
命令:d
将匹配行删除
示例(5)删除匹配100的行
sed '/100/'d hello.txt
输出内容为:
1 2 3
10 20 30
命令:s
将匹配行替换
详细命令为:s/pattern-to-find/replacement-pattern/g
pattern-to-find:被替换的串
replacement-pattern:替换成这个串
g:全部替换,默认只替换匹配到的第一个
示例(5)讲100替换为hello
sed 's/100/hello/g' hello.txt
输出内容为:
1 2 3
10 20 30
hello 200 300
5.元字符集
^:匹配一行的开始
$:匹配一行的结束
.:匹配某个字符
[abc]:匹配指定范围字符
6.实用命令
匹配以10开头的行,并替换为yes,并输出
sed -n 's/^10/yes/p' hello.txt
输出内容为:
yes 20 30
yes0 200 300
取出文件中行手的行号与冒号
设hello.txt的内容为
1:#!/bin/sh
2:cat hello.txt
3:exit
sed -n -e 's/^[0-9]\{1,\}://g'p hello.txt
输出结果为:
#!/bin/sh
cat hello.txt
exit
一分钟sed入门的更多相关文章
- 21分钟 MySQL 入门教程(转载!!!)
21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...
- 2016windows(10) wamp 最简单30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world
2016最简单windows(10) wamp 30分钟thrift入门使用讲解,实现php作为服务器和客户端的hello world thrift是什么 最简单解释 thrift是用来帮助各个编程语 ...
- SED入门
使用Linux多年,SED和AWK两大神器却始终无法得心应手的来提高自己的工作效率,每每需要查找替换,都要依赖于ST2等一众图形工具,深感愧疚,乃专门抽时间学习之,志在使之真正成为左右手. SED ...
- 一分钟快速入门openstack
一.它是什么,能干什么想认识一个事物,必须先弄明白它是什么,能干什么.首先说一下,openstack是一个搭建云平台的一个解决方案,说他不是个软件,但是我觉得说是一个软件,能够让大家认识更清晰些.op ...
- Vue.js——60分钟快速入门(转)
vue:Vue.js——60分钟快速入门 <!doctype html> <html lang="en"> <head> <meta ch ...
- Vue.js 60 分钟快速入门
Vue.js 60 分钟快速入门 转载 作者:keepfool 链接:http://www.cnblogs.com/keepfool/p/5619070.html Vue.js介绍 Vue.js是当下 ...
- 不会几个框架,都不好意思说搞过前端: Vue.js - 60分钟快速入门
Vue.js——60分钟快速入门 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理 ...
- Mysql学习总结(12)——21分钟Mysql入门教程
21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...
- 60 分钟极速入门 PyTorch
2017 年初,Facebook 在机器学习和科学计算工具 Torch 的基础上,针对 Python 语言发布了一个全新的机器学习工具包 PyTorch. 因其在灵活性.易用性.速度方面的优秀表现,经 ...
随机推荐
- [poj] 1149 PIGS || 最大流经典题目
原题 题目大意 给你m个猪圈以及每个猪圈里原来有多少头猪,先后给你n个人,每个人能打开一些猪圈并且他们最多想买Ki头猪,在每一个人买完后能将打开的猪圈中的猪顺意分配在这次打开猪圈里,在下一个人来之前 ...
- php中json_encode和json_decode的用法
1.json_encode基本用法:数组转字符串 <?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); ...
- 去除TB二合一页面弹窗
AdBlock插件 自定义AdBlock ###J_MMREDBOX_MASK 保存
- android 跨进程通信
转自:http://www.androidsdn.com/article/show/137 由于android系统中应用程序之间不能共享内存.因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一 ...
- JAVA中GC时finalize()方法是不是一定会被执行?
在回答上面问题之前,我们一定要了解JVM在进行垃圾回收时的机制,首先: 一.可达性算法 要知道对象什么时候死亡,我们需要先知道JVM的GC是如何判断对象是可以回收的.JAVA是通过可达性算法来来判断 ...
- SpringMVC+MyBatis+Shiro 配置文件详解
1.web.xml文件的配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version= ...
- webservice跨域文件,好多年前的东西,远程调用,js服务器端使用,可以远程调用
1.clientaccesspolicy.xml <?xml version="1.0" encoding="utf-8" ?> <acces ...
- Flex与51单片机socket通信 策略问题
直接把<cross-domain-policy> <allow-access-from domain="*" to-ports="*"/> ...
- springMVC 配置中易犯的小错误
搭建springMVC环境时有可能遇到:'警告: No mapping found for HTTP request with URI [/WEB-INF/pages/helloWorld.jsp] ...
- PE文件RV转FOA及FOA转RVA
/************************************************************************/ /* 功能:虚拟内存相对地址和文件偏移的转换 参数 ...