sed命令笔记

来源:互联网 发布:linux 网络库 编辑:程序博客网 时间:2024/06/05 04:08

sed介绍:sed属于一个编辑器,每次处理一行数据。注意sed不会对源文件进行操作,操作的对象知识源文件的一份拷贝.

但是sed有一个参数i是直接操作读取的文件,一般不建议使用该参数。

sed的参数有:

-n:使用sed的时候输入文件的内容会全部打印到终端,但是如果加上-n参数,只有匹配上或者sed处理的行才会被打印

-i:直接对读取的文件进行操作,而不是对文件的拷贝进行操作。

-f:这个是脚本的形式,将sed命令写进一个文件里面  -f 后面带的参数就是这个文件名.

sed的动作有:

a:插入,后面跟字符串,新增的字符串出现在下一行

sed '2a hope a time'  filename //在文件的第二行后面添加一行hope a time,也就是第三行的内容

i:插入,后面接字符串,这些字符串会在上一行插入,和a是对应的。

sed '2i hope a time'  filename //在文件的第二行后前面添加一行hope a time,也就是第二行的内容

c:替换,后面跟字符串,该字符串会取代n1,n2之间的行(可以是单行内容进行替换)    将整行内容进行替换

sed '2,5c the content of 2-5'  filename  //文件filename 中的2-5行的内容会被替换为 the content of 2-5

s:替换,使用正则表达式进行匹配替换

sed 

d:删除,删除d前面指定的行

sed  '$d'  filename //删除文件的最后一行  sed  '2,5d'  filename  //删除文件的2,5行的内容

p:打印操作

数据的查询:

sed  -n  '/zhan/p'  zhan.txt   //在文件中匹配关键字zhan 并打印该行内容

sed  -n  '/zhan/d'  zhan.txt   //在文件中匹配关键字zhan并打印该行,由于是删除不会打印任何东西 

sed  -n  '/zhan/{s/zhan/zhanxixi/;p}'  zhan.txt   //匹配查询并做后面的替换动作,动作命令包含在{}中

nl /etc/passwd  |  sed -e '3,$d' -e 's/bash/blueshell/'  -e参数是多点编辑sed处理多个命令

参考网址:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html


0 0
原创粉丝点击