Linux中sed

sed

它是一个流编辑器。sed非交互式的行编辑器 它是命令行中输入编辑指令,去处理指定输入文件,然后把结果输出到屏幕 注意:sed不改变输入文件的内容,可以使用重定向保存输出文件

工作流程:

1.从输入读取一行数,放入缓冲区,这个缓冲区称为 模式空间(pattern space)
2.按照指定的sed 编辑命令处理缓冲区的数据
3.把处理的结果显示并从缓冲区里面删除该语句(从模式空间)
4.读取下一行,重复上面的步骤

sed命令格式:

格式1.sed选项 [-e] [command1] [-e] [input-file] 注意只有一个的时候 -e 可以省略
格式2.sed选项 -f 脚本文件 [input-file]
-n 自动输出结果,关闭输出
-r 使用正则表达式进行匹配
‘ ’使用单引号 包括整个命令
“ ” 双引号 包含shell的变量

支持操作:

p 打印
d 删除
s/源数据/替换的数据/
s/源数据/替换的数据/g g表示全局的
s/源数据/替换的数据/gp 把结果打印出来

a\ 在指定的行后面追加文件
i\ 在制定的行前面追加文件
c\ 用新文本替换指定的行
sed -n ‘1,3p’1.txt 打印一到三行的内容
sed -n ‘1-3p’1.txt 打印一和三行的内容
sed -n /linux/p 1.txt 打印含有Linux的行

在第2行追加www 内容
sed ‘2a www’1.txt
把2-5行的内容全部取代为 baidu.com
sed ‘2,5c baidu.com’ 1.txt
在最后一行怎加 一句 并修改文件
sed -i ‘$a #this is test’ 1.txt
Linux中sed
Linux中sed