原来的内容是在磁盘当中放着,现在用sed命令处理的时候将内容掉入内存的一个地方用户处理,这个处理空间也叫模式空间.
sed命令可以处理文件中的数据或者用户输入的数据。
sed的优点:sed速度快,在启动vim的时间,sed已经完成了需要执行的操作sed命令比交互式的编辑器快很多。
2.sed命令选项 语法及动作说明:sed [-hnV][-e][-f][文本文件]
参数说明:
-e或--expression= 以选项中指定的script来处理输入的文本文件。
-f或--file= 以选项中指定的script文件来处理输入的文本文件。
-h或--help 显示帮助。
-n或--quiet或--silent 仅显示script处理后的结果。
-V或--version 显示版本信息。
动作说明:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何东西;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
3.种调用sed的方式
3.1 在命令行调用sed
3.2 -e在一个命令行调用多个编辑器
中间用分号割开
sed命令只是改变了输出内容,没有改变文件内容
sed 's/要被取代的字串/新的字串
3.5脚本替换中的几个替换标记
默认情况下只能替换一行中的第一个匹配的
g 替换文本中每处匹配模式
数字(例如2)
只替换每行第2次出现的匹配模式
p 结合-n 只输出被命令修改过的行
w 将输出保存在文件中(包含操作替换的行)
\ ! # 都可对特殊符号进行转义,习惯用哪个就用哪个
如果想让命令只作用在指定的行
某行开始到结尾的所有行
没有改变源文件的内容,只是删除了输出内容
删除第三行数据
删除第二三行
删除第三行到结尾
删除第一行
与正则表达式结合
i 在指定行前插入新的行
a在指定行后追加新的行
对文件的指定行插入
将新行插入在多行数据流末尾
在第一行之前插入多行数据
修改某行的数据c
一次改变好几个,而不是一个一个去改变.
y 替换单个字符
它会替换转换命令要求替换的所有实例,不会考虑它们出现的位置
打印行号 ‘=’
w 向文件中写入指定行
r 从文件中读取
将一个独立的文件插入到一个数据流中。
对源文件进行替换
-n:取消默认输出。注意:sed命令会默认把输入行打印到屏幕上,所以如果想精准的控制输出,就需要-n。