sed用法

基本用法:

sed,以行为单位进行处理,可以直接将文件的内容进行增删改查等操作

格式:
sed [选项] 参数 文件

格式 参数 解释
-r 支持正则表达式
-i 直接修改文件内容
-n 只打印匹配的行
a 在当前行下面插入内容
i 在当前行上面插入内容(直接修改,原文件也会修改)
c 把选定行改为新的文本(替换所在那行)
p 打印行(一般与-n一起使用,屏蔽默认输出,否则会出现两行内容)
s 替换指定字符

sed中编辑命令:

a 追加,向匹配行后面插入内容
c 更改 ,更改匹配行的内容
i 插入,向匹配行前插入内容
d 删除,删除匹配行的内容
s 替换,替换掉匹配的内容
p 打印,打印出匹配的内容,通常与-n选项合用
= 用来打印被匹配到行的行号
n 读取下一行,遇到n时会自动跳入下一行
r,w 读写编辑命令

示例:

新增:

sed -i '12 a this is test data‘ profile #profile的第12行后插入一行数据

sed -i '13 a export LD_LIBRARY_PATH=/a... \
export LD_LIBRARY_PATH=/b... \
export LD_LIBRARY_PATH=/c...' profile   #在profile的13行后插入三行数据

删除:

sed -i 'd' profile      #删除所有内容行

sed -i '1,4d' profile        #删除1-4行

sed -n '$=' profile        #输出文件总行数

sed -n '2,6d' profile    #删除2-6行

sed '/xml/d' profile    #删除所有包含xml的行

sed '/xml/!d' profile    #删除所有不包含xml的行,!取反

sed '$d'  profile    #删除最后一行

sed '/^install/d'  profile    #删除install开头的行

sed '/^$/d'  profile    #删除所以空行

修改:

sed 's/ww/web/' profile    #每行中第一个ww改成web

sed 's/ww/web/g' profile    #将所有的ww改成web

sed 's/ww/web/3' profile     #每行中第三个ww改成web

sed 's/xml//g' profile    #将所有的xml都置空(换成空)

sed 's#/bin/bash#/sbin/sh#g' profile    #包含/的替换,可以把格式换成#

sed '1,7s/^/#/'  profile  #第1~7行注释掉

sed 's/^#//g'    profile    #将所有注释去掉

查看:

sed -n '3,6p' profile    #打印3-6行

sed -n '1p;4p' profile    #打印第1和第4行

sed -n '3,+10p' profile    #打印第3行以及后面10行

sed -n '1~2p' profile    #打印奇数行

sed -n '2~2p' profile    #打印偶数行

sed -n '/root/p' profile    #打印包含root的行

sed -n '/bash$/p' profile    #打印bash结尾的行

sed -n '/^root/p'  profile     #输出以root开头的行

你可能感兴趣的:(sed用法)