sed(流编辑)
sed 是一种在线的、非交互式的编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。
接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;
与grep一样,sed在文件查找模式时也可以使用正则表达式和各种元字符正则表达式是括在斜杠间的模式,用于查找和替换。
格式 : sed 选项 命令 文件
返回值 : 都是0,对错不管。只要命令存在语法错误时,sed的退出状态才不是0
常用命令:
d //删除命令----sed -r “/root/d” 1.txt (查找然后删除)
s //替换命令----sed -r “s/root/zz/” 1.txt (查找把所有的root换成zz)
r //读文件命令----sed -r " $ r 2.txt" 1.txt (读取2号文件,并在尾行添加2号文件的内容)
w //写文件命令,另存为----sed -r “w 2.txt” 1.txt (读取文件1并写入到2.txt文件)
a //追加命令(之后)----sed -r “a111” 1.txt (在每行后面都追加111,也可自由选择在第几段后面添加)
i //插入命令 (之前)----sed -r “2iaaaaa” 1.txt (在第二行前面添加aaaaa)
c //替换整行命令----sed -r “2c333” 1.txt (把第二行内容替换成333)
n //获取下一行命令----sed -r “/root/{n;d}” 1.txt (查找root然后把后面一行删除)
! //反向选择----sed -r “2,$!d” 1.txt (除了第二行其他内容全部删除)
e //多重编辑---- sed -r -e ‘1,3d’ -e ‘4s/adm/admin/g’ passwd (执行完一个命令后-e继续执行其他命令)
暂存空间
暂存和取用命令:
h覆盖暂存空间
H追加暂存空间
g覆盖行
G追加行