sed文本处理工具
精选
原创
©著作权归作者所有:来自51CTO博客作者券券Boss的原创作品,请联系作者获取转载授权,否则将追究法律责任
sed文本处理工具
- sed 是一种非交互式的流编辑器,通过多种转换修改流经它的文本,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space), 接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。 接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向 存储输出。sed可做的编辑工作包括删除、查找替换、添加、插入、从其他文件中读入数据 等 。
- 注意:要想保存修改后的文件,必须使用重定向生成新的文件。
- 如果想直接修改源文件 本身则需要使用
“-i”
参数。 - sed命令使用的场景包括以下一些:
- 常规编辑器编辑困难的文本
- 太过于庞大的文本,使用常规编辑器难以胜任(比如说vi一个几百兆的文件)
- 有规律的文本修改,加快文本处理速度(比如说全文替换)
sed 语法
动作说明
1、删除命令
2、查找替换命令
- 使用 s 命令可将查找到的匹配文本内容替换为新的文本,默认情况只替换第一次匹配到的内容
3、字符转换命令
- 使用y命令可以进行字符转换,其作用为将一系列字符逐个地变换为另外一系列字符,基本用法如下:
# 以下命令会将file中的O转换为N、L转换为E、D转换为W
# 注意转换字符和被转换字符的长度要相等,否则sed无法执行
sed 'y/OLD/NEW' file
4、插入文本命令
- 使用i或a命令插入文本,其中
i
代表在匹配行之前插入,而a
代表在匹配行之后插入,示例如 下:
5、取代行命令
- c 命令,c 的后面可以接字符串,这些字符串可以取代 n1,n2之间的行
6、读入文本
- 使用r命令可从其他文件中读取文本,并插入匹配行之后,例如:
7、打印
- 使用
p
命令可进行打印,这里使用 sed 命令时一般都加-n
参数,表示不打印没关系的行。
sed 脚本