sed命令
1. 参数
指令信息参数
参数 | 解释 |
---|---|
p | print 输出信息 |
i | insert指定信息前插入信息 |
a | append指定信息后附加新的信息 |
d | delete删除指定的信息 |
s | substitute 替换信息s###g |
c | 替换一整行信息 |
命令参数信息
参数 | 解释 |
---|---|
-n | 取消默认输出 |
-r | 识别扩展正则 |
-i | 真实编辑文件 |
-e | 识别多个命令操作 |
2. 参数案列
sed:
1.擅长对文件进行操作处理
2.对文件信息进行内容的信息修改
2.1 -n 根据文件信息进行查找
显示文件中有yang的行
sed -n '/yang/p' yang.txt
多个连续
sed -n '/yang/,/yu/p' yang.txt
不连续
sed -n '/yu/p;/yang/p' yang.txt
2.2 p 显示行的信息
sed -n '3p' yang.txt
多行
sed -n '2,6p' yang.txt
多行不连续
sed -n '3p;4p' yang.txt
2.3 i 前边添加信息
在第一行添加信息
sed '1iyang,jijiojoji,ji' yang.txt
2.4 a 后一行添加信息
sed '2ayuyu,ki,lo' yang.txt
最后一行
sed '$ayuyu,ki,lo' yang.txt
在yang前边添加old后边添加we
sed -e '/yang/iold/' -e '/yang/awe/' yang.txt
2.5 d 删除
删除单行
sed '3d' yang.txt
删除多行
sed '1,5d' yang.txt
不连续
删除指定信息
sed '1d;4d' yang.txt
sed '/yang/d' yang.txt
2.6 不显示空行
sed -n '/.*/!p' yang.txt
sed '/^$/d' yang.txt
sed -n '/./p' yang.txt
2.7 s修改信息
sed 's#yang#yuyu#g' yang.txt
当修改的信息中有#时候
sed 's/#yang/yang012/g' yang.txt
2.8 s后项引用前项()
sed ‘s#()#\n#g’
sed -r 's#(12)#\1#g' yang.txt
此时的12 就会代替\1
过滤ip
ip a s eth0|sed -n '3p'|sed -r 's#^.*net (.*)#\1#g'
ip a s eth0|sed -n '3p'|sed -r 's#^.*net (.*)#\1#g'|sed -r 's#(.*)/24.*#\1#g'
合并
ip a s eth0|sed -rn '3s#^.*net (.*)/24.*#\1#gp'
2.9 i和.bak真正的修改文件
sed -i 's#yang#yang01#g' yang.txt
修改的同时对原文件进行备份
sed -i.bak 's#yang#yang01#g' yang.txt
在真实替换文件内容时候,一定不能让n和i参数同时出现
说明: ni和参数同时使用,会将文件内容进行清空
批量修改文件的扩展名称 将oldboyxx.txt扩展名修改为oldboyxx.jpg
ls oldboy*.txt|sed -r 's#(.*)txt#mv & \1jpg#g'
rename