分手快乐 发表于 2015-1-14 21:17:15

CentOS教程之Centos下令――sed

如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!1.兼并行
zj@zj:~/Script/blog_script$cattest1
1
2
3
4
兼并高低两行
zj@zj:~/Script/blog_script$sed$!N;s/
/        /test1
12
34
兼并婚配形式及其下一行
zj@zj:~/Script/blog_script$sed/2/{N;s/
/        /}test1
1
23
4
兼并一切行
zj@zj:~/Script/blog_script$sed:a;N;s/
/        /;ba;test1
1234

2.互换行
2.1已知行号时互换两行
zj@zj:~/Script/blog_script$cattest
baidumusicsoterriblesobad
microsofthahahaha
yahoobyebye
googleprincesssogood
这里是互换1,4行.固然你能够依据本人必要修正
zj@zj:~/Script/blog_script$for((i=1;i<=4;i++));docase$iin1)sed-n4ptest;;4)sed-n1ptest;;*)sed-n${i}ptest;;esac;done
googleprincesssogood
microsofthahahaha
yahoobyebye
baidumusicsoterriblesobad
一连时好说:
zj@zj:~/Script/blog_script$sed1{h;d};2{G}test
microsofthahahaha
baidumusicsoterriblesobad
yahoobyebye
googleprincesssogood

2.2不晓得行号
要互换的两行是一连行的情形下:
zj@zj:~/Script/blog_script$sed/baidu/{h;d};/microsoft/{G}test
microsofthahahaha
baidumusicsoterriblesobad
yahoobyebye
googleprincesssogood
ps:互换包括bai与microsoft的行
两行不一连的情形:

zj@zj:~/Script/blog_script$sed/baidu/{:a;N;/google/!ba;s/([^
]*)
(.*)
(.*)/3
2
1/}test
googleprincesssogood
microsofthahahaha
yahoobyebye
baidumusicsoterriblesobad
ps:互换含有baidu与google的行

研讨了下写了个不管一连不一连的都能够的:
zj@zj:~/Script/blog_script$sed/baidu/{:a;N;/microsoft/!ba;/[^
]*baidu[^
]*
[^
]*microsoft[^
]*$/{s/([^
]*baidu[^
]*)
(.*)/2
1/};s/([^
]*)
(.*)
(.*)/3
2
1/}test
microsofthahahaha
baidumusicsoterriblesobad
yahoobyebye
googleprincesssogood

zj@zj:~/Script/blog_script$sed/baidu/{:a;N;/google/!ba;/[^
]*baidu[^
]*
[^
]*google[^
]*$/{s/([^
]*baidu[^
]*)
(.*)/2
1/;};s/([^
]*)
(.*)
(.*)/3
2
1/}test
googleprincesssogood
microsofthahahaha
yahoobyebye
baidumusicsoterriblesobad

ps:下面代码
/baidu/{....}碰到含有baidu的行,入手下手做{}中的下令序列
:a;N;/google/!ba轮回读信息,直到读取google.
/[^
]*baidu[^
]*
[^
]*google[^
]*$/这个就是说假如哦baidu与google之间只要一个
,即这两个是一连行就:{s/([^
]*baidu[^
]*)
(.*)/2
1/;}互换这两行

假如不婚配下面的形式就是说不是一连行了.
s/([^
]*)
(.*)
(.*)/3
2
1/}
而在婚配一连行的情形下是不成能婚配下面表达式的.ok~~~~

3.交互奇偶行
zj@zj:~/Script/blog_script$sed$!N;s/([^
]*)
([^
]*)/2
1/test
microsofthahahaha
baidumusicsoterriblesobad
googleprincesssogood
yahoobyebye

4.删除行就不必说了吧
d喽....

5.删除空行
sed/^$/dtest2
删除多个空举动一个空行
sed/^$/{N;/^
*$/D}test2欢迎大家来到仓酷云论坛!

admin 发表于 2015-1-17 10:05:54

就这样,我们一边上OS理论课,一边上这个实验,这样挺互补的,老师讲课,一步一步地布置任务

山那边是海 发表于 2015-1-26 07:45:10

尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。

老尸 发表于 2015-2-4 18:50:26

以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。

莫相离 发表于 2015-2-10 06:04:40

任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。

若相依 发表于 2015-3-10 12:37:07

Linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一。

冷月葬花魂 发表于 2015-3-24 03:34:08

对于英语不是很好的读者红旗 Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。
页: [1]
查看完整版本: CentOS教程之Centos下令――sed