一分钟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. 因其在灵活性.易用性.速度方面的优秀表现,经 ...
随机推荐
- [spoj] FTOUR2 FREE TOUR II || 树分治
原题 给出一颗有n个点的树,其中有M个点是拥挤的,请选出一条最多包含k个拥挤的点的路径使得经过的权值和最大. 正常树分治,每次处理路径,更新答案. 计算每棵子树的deep(本题以经过拥挤节点个数作为d ...
- 洛谷 P3224 [HNOI2012]永无乡 解题报告
P3224 [HNOI2012]永无乡 题目描述 永无乡包含 \(n\) 座岛,编号从 \(1\) 到 \(n\) ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 \(n\) 座岛排名,名次用 ...
- SQL UNPIVOT和PIVOT
/* table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) 完整语法: table_sou ...
- vue后台项目
https://github.com/PanJiaChen/vue-element-admin
- bzoj 2159 - Crash 的 文明世界
Description 给定一棵\(n\le 10^5\)的树, 和\(k\le 150\) 求每个点\(x\)的\[S(x) = \sum_{y=1}^n dis(x, y) ^ k\] Analy ...
- Windows.Forms Panel 动态加载用户控件 UserControl
创建好一个Windows Forms程序,在创建好的程序中Form1添加一个Panel控件 如图:
- MAC删除目录下的“.svn”文件的方法
http://bbs.feng.com/read-htm-tid-7803070.html MAC删除目录的“.svn”文件:打开终端,进到所在的目录,然后出入一下代码find . -name &qu ...
- 和菜鸟一起学c之gcc编译过程及其常用编译选项【转】
转自:http://blog.csdn.net/eastmoon502136/article/details/8162626 版权声明:本文为博主东月之神原创文章,未经博主允许不得转载. 上篇文章,知 ...
- 深入解析Linux内核I/O剖析(open,write实现)
Linux内核将一切视为文件,那么Linux的文件是什么呢?其既可以是事实上的真正的物理文件,也可以是设备.管道,甚至还可以是一块内存.狭义的文件是指文件系统中的物理文件,而广义的文件则可以是Linu ...
- linux下搭建SVN服务器完全手册【转】
转自:http://blog.csdn.net/bullbat/article/details/9115559 系统环境 RHEL5.4最小化安装(关iptables,关selinux) ...