sed命令拷屏
http://blog.sina.com.cn/s/blog_45497dfa0100w6r3.html sed样例较多,可以参考
http://blog.sina.com.cn/s/blog_6dc9e4cf0100y40g.html
http://blog.csdn.net/ysdaniel/article/details/7905837
-e,-n,-i,-f
g,p,r,w,!,d,l,n
s//p,s//g,{;} [root@-shiyan sed]# cat -n grade.txt
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
###其中$d可以换成任何定址符号,例如逗号,正则,数字之类的
###删除尾行
[root@-shiyan sed]# sed '$d' grade.txt
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
###删除除green行的其它行,相当于取反。
[root@-shiyan sed]# sed '/green/!d' grade.txt
J.Lulu / green
###行后插入
[root@-shiyan sed]# sed '/green/a\\aaaaaaaaaaaa' grade.txt
M.Tansley / Green
J.Lulu / green
aaaaaaaaaaa
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
###行前插入
[root@-shiyan sed]# sed '/green/i\\aaaaaaaaaaaa' grade.txt
M.Tansley / Green
aaaaaaaaaaa
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
###替换行
[root@-shiyan sed]# sed '/green/c\\aaaaaaaaaaaa' grade.txt
M.Tansley / Green
aaaaaaaaaaa
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
[root@-shiyan sed]# sed '1,3y/99/87/' grade.txt
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
[root@-shiyan sed]# sed -n 's/$/&aa/p' grade.txt
M.Tansley / Green 44aa
J.Lulu / green 26aa
P.Bunny / Yellow 28aa
J.Troll / Brown- 26aa
L.Tansley / Brown- 28aa
c.oi / wo 4aa
###成功匹配并替换后写入aa.txt
[root@-shiyan sed]# sed -n 's/$/&aa/w aa.txt' grade.txt
###在green行后读入aa.txt文件。
[root@-shiyan sed]# sed '/green/r aa.txt' grade.txt
M.Tansley / Green
J.Lulu / green
# no packages own wtmpaaaaaaaaaaaaaaaaa and btmpaaaaaaaaaaaaaaaaa -- we'll rotate them here
/var/log/wtmpaaaaaaaaaaaaaaaaa {
create root utmpaaaaaaaaaaaaaaaaa
/var/log/btmpaaaaaaaaaaaaaaaaa {
create root utmpaaaaaaaaaaaaaaaaa
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
c.oi / wo ###
[root@-shiyan sed]# sed -n '/file/,/root/s/file/iiiiiiiiiiiiiiii/p' logrotate.conf
# rotate log iiiiiiiiiiiiiiiis weekly
# create new (empty) log iiiiiiiiiiiiiiiis after rotating old ones
# use date as a suffix of the rotated iiiiiiiiiiiiiiii
# uncomment this if you want your log iiiiiiiiiiiiiiiis compressed
###默认只替换匹配到的第一个字符串,除非加g,全局替换。
[root@-shiyan sed]# sed -n 's/tmp/&aaaaaaaaaaaaaaaaa/p' logrotate.conf
# no packages own wtmpaaaaaaaaaaaaaaaaa and btmp -- we'll rotate them here
/var/log/wtmpaaaaaaaaaaaaaaaaa {
create root utmpaaaaaaaaaaaaaaaaa
/var/log/btmpaaaaaaaaaaaaaaaaa {
create root utmpaaaaaaaaaaaaaaaaa
###全局替换并打印,同时写入aa.txt文件。
[root@-shiyan sed]# sed -n 's/tmp/&aaaaaaaaaaaaaaaaa/gpw aa.txt' logrotate.conf
# no packages own wtmpaaaaaaaaaaaaaaaaa and btmpaaaaaaaaaaaaaaaaa -- we'll rotate them here
/var/log/wtmpaaaaaaaaaaaaaaaaa {
create root utmpaaaaaaaaaaaaaaaaa
/var/log/btmpaaaaaaaaaaaaaaaaa {
create root utmpaaaaaaaaaaaaaaaaa ###只对下一行操作
[root@-shiyan sed]# sed '/green/{n;s/12/9999/;}' grade.txt
M.Tansley / Green
J.Lulu / green
P.Bunny / Yellow
J.Troll / Brown-
L.Tansley / Brown-
E.Wo / bule
###对不连续行执行操作,即指定行的删除
[root@250-shiyan sed]# sed -i '1s/$/#&/;4s/$/#&/' grade.txt
[root@250-shiyan sed]# cat grade.txt
#
J.Lulu 06/99 48317 green 9 24 26
P.Bunny 02/99 48 Yellow 12 35 28
J.Troll 07/99 4842 Brown-3 12 26 26#
L.Tansley 05/99 4712 Brown-3 12 30 28
E.Wo 02/87 76 bule 34 88 5 ###针对不连续行操作
[root@250-shiyan sed]# sed '1d;3d;5d' grade.txt
J.Lulu 06/99 48317 green 9 24 26
J.Troll 07/99 4842 Brown-3 12 26 26#
E.Wo 02/87 76 bule 34 88 5
###标签函数应用,较难理解。定义标签p1,执行替换操作,当A或B到达3个时。
[root@-shiyan sed]# cat > file
A
B
[root@-shiyan sed]# sed '{:p1;/A/s/A/AA/;/B/s/B/BB/;/[AB]\{3\}/b;b p1;}' file
AAA
BBB ###列出非打印字符
[root@-shiyan sed]# sed -n 'l' grade.txt
M.Tansley\t05/\t48311\tGreen\t8\t40\t44$
J.Lulu\t\t06/\t48317\tgreen\t9\t24\t26$
P.Bunny\t\t02/\t48\tYellow\t12\t35\t28$
J.Troll\t\t07/\t4842\tBrown-\t12\t26\t26$
L.Tansley\t05/\t4712\tBrown-\t12\t30\t28$
E.Wo\t\t02/\t76\tbule\t34\t88\t5$ ###第三行打印完就退出
[root@250-shiyan sed]# sed '3q' logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
其中:test_sed的内容是: sed 'y/1234567890/ABCDEFGHIJ/' test_sed
ABCDEFGHIJ
BCDEFGHIJA
CDEFGHIJAB
DEFGHIJABC
注意变换关系是按两个list的位置对应变换 sed 's/01/Ab/g' test_sed 23456789Ab
3456789Ab2
456789Ab23
注意:第一行的0,1没有分别替换为A,b test.txt,内容如下:
http://www.5566.cn/produce/20070804112/315613171.shtml
http://bj.5566.cn/produce/20070804112/31581217.shtml
http://sz.5566.cn/produce/2008090412/31581247.shtml 要求如下:将http://*.5566.cn/替换成/home/html/www.5566.cn # sed -n 's/http.*\.cn/\/home\/html\/www.5566.cn/gp' test.txt
/home/html/www..cn/produce//.shtml
/home/html/www..cn/produce//.shtml
/home/html/www..cn/produce//.shtml
[root@-shiyan sed]# sed '3q' logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly -e选项允许在同一行里执行多条命令。
sed -e '1,5d' -e 's/test/check/'example
如例子所示,第一条命令删除1至5行,第二条命令用 check替换test。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。
一个比-e更好的命令是--expression。它能给sed表达式赋值。
sed --expression='s/test/check/' --expression='/love/d' example
[root@manage ~]# cat qq
qqqqqqqqqqqq
ddddddddddd
wwwwwwwwwwww
在第二行插入换行与uuuu行。\n是换行
[root@manage ~]# sed -i '2i\\nuuuuuuuuu' qq
[root@manage ~]# cat qq
qqqqqqqqqqqq uuuuuuuuu
ddddddddddd
wwwwwwwwwwww
[root@manage ~]# cat qq
qqqqqqqqqqqq
uuuuuuuuu
ddddddddddd
wwwwwwwwwwww 在第三行后插入
[root@manage ~]# sed -i '3a\\n111111111' qq
[root@manage ~]# cat qq
qqqqqqqqqqqq
uuuuuuuuu
ddddddddddd wwwwwwwwwwww 将第三行替换
[root@manage ~]# sed -i '3c\22' qq
[root@manage ~]# cat qq
qqqqqqqqqqqq
uuuuuuuuu wwwwwwwwwwww 删除第4行到第6行
[root@manage ~]# sed -i '4,6d' qq
[root@manage ~]# cat qq
qqqqqqqqqqqq
uuuuuuuuu
22 一次插入多行
[root@manage ~]# cat qq
qqqqqqqqqqqq
aaa
bbb
ccc
uuuuuuuuu
22
[root@manage ~]# sed -i '2i\ 5a ee;\nbbb fff;\nccc oooooo;' qq
[root@manage ~]# cat qq
qqqqqqqqqqqq
5a ee;
bbb fff;
ccc oooooo;
aaa
bbb
ccc
uuuuuuuuu
22
sed命令拷屏的更多相关文章
- awk命令拷屏
如果不指明采取什么动作,awk默认打印出所有浏览出的记录,与{print $}是一样的 模式和动作两者是可选的,如果没有模式,则action应用到全部记录,如果没有action,则输出匹配全部记录. ...
- ceph命令拷屏
常用命令ceph -w ceph df ceph features ceph fs ls ceph fs status ceph fsid ceph health ceph -s ceph statu ...
- rbd_rados命令拷屏
mimic或者luminous rbd_rados sudo mount -t ceph 192.168.7.151:6789:/ /mnt -o name=admin,secret=AQBaPZNc ...
- 10 sed命令的基本用法
grep灵活的关联正则表达式实现文件过滤,而sed是一个数据流的编辑器,或者说是一个行编辑器,它将文件一行一行的数据放入到内存中进行编辑,而awk是一个报告生成器,这个我们以后再说: 之前我们介绍过g ...
- 文本处理三剑客之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不同:同时 ...
随机推荐
- 解决远程桌面链接时出现"The RPC server is unavailable."或"RPC服务器不可用"的问题
解决远程桌面链接时出现"The RPC server is unavailable."或"RPC服务器不可用"的问题 解决远程桌面链接时出现"The ...
- Minimum Inversion Number_线段树||树状数组
Problem Description The inversion number of a given number sequence a1, a2, ..., an is the number of ...
- iOS app的破解原理,就是去除已付费的账户信息的原理是什么?
正规的应用程序(IPA 格式,官方软件店发布)在被 iTunes 同步到 iPhone 的时候会调用系统进程 INSTALLD 对应用程序进行证书校验(GPLv3 授权)而这个证书本身是由官方捆绑在应 ...
- PHP oracle分页
oracle分页 function getall($query, $start=0, $rows=-1) { $this->dbh = oci_connect('aaa','mmm'," ...
- .NET 代码编译过程
作为一种代码指令平台,Microsoft .NET比微软公司先前推出的其他技术平台要来得更为复杂.由于.NET提供了对多种编程语言以及(在理论上说)多重平台的支持,这就需要在传统的两个代 码层添加一个 ...
- json-c-0.9 的简单用法
1.下载安装包路径: wget http://oss.metaparadigm.com/json-c/json-c-0.9.tar.gz 2.解压安装包 tar zxvf json-c-0.9.tar ...
- wrk中的lua脚本(转)
转载地址:http://www.tuicool.com/articles/IFjIJjU wrk是一款现代化的http压测工具,提供lua脚本的功能可以满足每个请求或部分请求的差异化. wrk中执行h ...
- 【题解】【BST】【Leetcode】Validate Binary Search Tree
Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...
- SpringMVC 产品笔记
假设我是springMVC的产品经理,我会怎么做? 恩,题目太大,能力不够,缓一缓. http://jinnianshilongnian.iteye.com/category/231099 http: ...
- poj 1190 生日蛋糕
中文题 题目分析 搜索题,非常好的剪枝 由于深度一定(m),所以使用深度优先搜索,自上而下的设定蛋糕序号,最顶层的为第1层,……,最底层的蛋糕为第m层,很明显满足题目条件的前i层的(从顶层(也就是编号 ...