📅  最后修改于: 2023-12-03 15:20:03.390000             🧑  作者: Mango
sed
是 Linux 上一个非常强大的文本处理工具,可以进行替换、删除、插入、打印等操作。在使用 sed
时,需要指定不同的模式,以实现不同的处理目的。
本文将介绍 sed
的两种模式:行模式和流模式。
行模式是 sed
的默认模式,它按行逐一处理文本。我们可以使用以下命令来在行模式下进行操作:
替换文本:sed 's/old/new/g' FILENAME
该命令将文本中所有的 old
替换为 new
。
示例:
sed 's/boy/girl/g' test.txt
输出:
This is a test file. A girl is talking to a girl. A boy is playing with a toy.
删除行:sed '1d' FILENAME
该命令将文本的第一行删除。
示例:
sed '1d' test.txt
输出:
A girl is talking to a boy. A boy is playing with a toy.
插入文本:sed '1i\INSERTED TEXT' FILENAME
该命令将指定的文本插入到文本的第一行前面。
示例:
sed '1i\This is a new line.' test.txt
输出:
This is a new line. This is a test file. A girl is talking to a boy. A boy is playing with a toy.
流模式则是将整个文本看做一条数据流,以此进行操作。我们可以使用以下命令在流模式下进行操作:
替换文本:sed 's/old/new/g'
该命令可以通过管道符 |
将其与其他命令结合使用,以实现替换的操作。
示例:
cat test.txt | sed 's/boy/girl/g'
输出:
This is a test file. A girl is talking to a girl. A girl is playing with a toy.
删除行:sed '1d'
该命令可以通过管道符 |
将其与其他命令结合使用,以实现删除的操作。
示例:
cat test.txt | sed '1d'
输出:
A girl is talking to a boy. A boy is playing with a toy.
插入文本:sed '1i\INSERTED TEXT'
该命令可以通过管道符 |
将其与其他命令结合使用,以实现插入的操作。
示例:
cat test.txt | sed '1i\This is a new line.'
输出:
This is a new line. This is a test file. A girl is talking to a boy. A boy is playing with a toy.
sed
的行模式和流模式都非常有用,可以帮助我们快速、方便地处理文本。通过阅读本文,您应该已经了解了 sed
两种模式的基本用法,并能够在实际操作中正确地应用它们。