环境
centos7.9
介绍
sed
(stream editor)是一个强大的流编辑器,它在 Linux 和 Unix 系统中用于处理文本数据。sed
命令可以对文本进行过滤和转换,它按照指定的模式执行编辑操作,如替换文本、删除行、插入新的文本等。以下是 sed
的一些主要功能和用法:
- 最常用,替换文本:
sed
可以用来替换文本中的字符串。例如,将文件中的所有 "old" 替换为 "new":
sed 's/old/new/g' filename
s
表示替换操作,/old/
是要查找的模式,/new/
是替换后的文本,g
表示全局替换。
- 此处将所有a替换为y
此处要注意加参数-i才是直接修改文件,不加只是预览作用
- 删除文本:
sed
可以用来删除匹配特定模式的行。例如,删除文件中包含 "error" 的所有行:
sed '/error/d' filename
d
表示删除操作。- 删除第三行
sed '3d' 1.txt
- 插入文本:
sed
可以在匹配行之前或之后插入文本。例如,在文件的第二行之前插入 "New line":
sed '2i\New line' filename
i
表示插入操作,\
是转义字符,用于在插入的文本中添加新行。
- 追加文本:
- 类似于插入,
sed
可以在匹配行之后追加文本。例如,在包含 "pattern" 的行之后追加 "Appended line":
sed '/pattern/a\Appended line' filename
- 打印文本:
sed
可以用来打印匹配特定模式的行。例如,打印文件中包含 "pattern" 的所有行:
sed -n '/pattern/p' filename
-n
选项告诉sed
不要打印所有行,/p
表示打印匹配的行。
- 替换并打印:
- 你可以组合使用替换和打印操作,例如,替换所有 "old" 为 "new" 并打印结果:
sed 's/old/new/g' filename
- 使用正则表达式:
sed
支持扩展的正则表达式,可以用来执行复杂的文本处理任务。例如,替换每行的第一个 "old" 为 "new":
sed '0,/^/s/old/new/' filename
- 另一个常用功能,多文件处理:
sed
可以同时处理多个文件,例如,将多个文件中的 "old" 替换为 "new":
sed -i 's/old/new/g' file1 file2 file3
-i
选项表示直接修改文件。