基本用法:
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开头的行
网友评论