文本管理之sed
sed
sed
(全名:stream editor
,即流编辑器)是一个在 Linux 和 Unix 系统中常用的命令行文本处理工具,用于对文件或输入流进行基于行的文本转换。以下是 sed
的一些常用选项和用法:
1. 基本用法:
sed 's/pattern/replacement/' file.txt
在 file.txt
文件中查找匹配 pattern
的文本,并将其替换为 replacement
。
2. 全局替换:
sed 's/pattern/replacement/g' file.txt
在这个例子中,g
标志表示全局替换。这将替换文件中所有匹配 pattern
的文本,而不仅仅是每行的第一个匹配项。
3. 指定行范围:
sed '1,3s/pattern/replacement/' file.txt
在这个例子中,我们指定了行范围 1,3
,这意味着只在文件的前三行中查找和替换匹配 pattern
的文本。
4. 使用正则表达式:
sed -E 's/^pattern/replacement/' file.txt
使用 -E
选项来启用扩展正则表达式。这允许使用更多的正则表达式特性,如 ?
、+
、|
等。在这个例子中,^
符号表示行的开头,因此只替换以 pattern
开头的行。
5. 直接修改文件:
sed -i 's/pattern/replacement/' file.txt
使用 -i
选项来直接修改文件内容。这将在原文件上进行替换,而不是将结果输出到标准输出。
6. 使用多个命令:
sed -e 's/pattern1/replacement1/' -e 's/pattern2/replacement2/' file.txt
使用多个 -e
选项来指定多个 sed
命令。在这个例子中,我们分别替换了两个不同的模式。
7. 从标准输入读取:
echo 'text' | sed 's/pattern/replacement/'
通过管道将文本传递给 sed
,从标准输入读取并进行替换操作。
这些只是 sed
命令的一些基本用法和选项。sed
是一个非常强大的工具,可以通过组合不同的选项和命令来实现更复杂的文本转换和处理。要了解更多关于 sed
的信息,可以查看其手册页(通过运行 man sed
命令)或在线文档。