一、sed命令
- sed 是一种几乎包括在所有 UNIX 平台(包括 Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。
- 处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
- [root@localhost ~]# sed [选项] ‘[动作]’ 文件名
选项: | -n: | 一般sed命令会把所有数据都输出到屏幕 ,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。 | | —- | —- | | -e: | 允许对输入数据应用多条sed命令编辑 | | -i: | 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出 |
动作: | a \: | 追加,在当前行后添加一行或多行。添加多行时,除最后 一行外,每行末尾需要用“\”代表数据未完结。 | | —- | —- | | c \: | 行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结。 | | i \: | 插入,在当期行前插入一行或多行。插入多行时,除最后 一行外,每行末尾需要用“\”代表数据未完结。 | | d: | 删除,删除指定的行。 | | p: | 打印,输出指定的行。 | | s: | 字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”(和vim中的替换格式类似)。 |
二、行数据操作
- 查看文件的第二行
- 删除第二行到第四行的数据,但不修改文件本身
- 在第二行后追加hello
- 在第二行前插入两行数据
- 数据替换(第四行数据改为no)
- 字符串替换sed ‘s/旧字串/新字串/g’ 文件名
- 在第三行中,把23换成99
- sed操作的数据直接写入文件
- 同时把“zhang”和“li”替换为空