导航菜单
首页 » 问答 » 正文

如何使用 Sed 命令替换文件中的字符串

如何使用 Sed 命令替换文件中的字符串

“sed”命令的完整形式是流编辑器。该命令是Linux操作系统的一个非常强大的命令,它有多种用途。此命令的常见用途之一是查找并替换文件的一个或多个字符串值。该命令可以在不打开文件的情况下替换文件的特定内容。 “sed”命令支持正则表达式。可以根据该命令定义的正则表达式在文件中搜索特定的字符串值。本教程介绍了使用“sed”命令搜索和替换文件中特定字符串的不同方法。

句法 :

用于从文件中搜索和替换字符串的“sed”命令的语法如下:

sed -i "s//"

这里,“i”选项用于如果找到搜索词则替换原始文件的内容。 “s”命令表示搜索特定字符串的替换,如果文件中存在搜索词,则用另一个字符串替换该字符串。文件名包含已完成搜索和替换的任何现有文件名。

“Sed”命令的不同示例

本教程的这一部分介绍了搜索和替换文件中字符串的不同方法。通过以下内容创建一个名为 .txt 的文本文件,其中使用“sed”命令完成搜索和替换任务:

.txt

侯赛因博士:CSE:第 50 批:第 10 学期

Nibir :CSE:第 51 批:第 9 学期

梅赫纳兹·卡齐:CSE:第 52 批:第 8 学期

示例 1:替换所有出现的字符串而不更改文件

本示例显示了根据搜索字符串的精确匹配替换文件中特定字符串的方法。

执行以下命令查看.txt文件的内容:

$ cat .txt

运行以下命令在 .txt 文件中搜索单词“CSE”,并使用“BBA”替换所有出现的该字符串:

$ sed 's/CSE/BBA/' .txt

输出:

执行前面的命令后会出现以下输出:

示例 2:永久替换文件中出现的所有字符串

本示例显示了根据搜索字符串永久替换文件中特定字符串的方法。

执行以下命令查看.txt文件的内容:

$ cat .txt

运行以下命令在.txt文件中搜索单词“batch”,并使用“BATCH”永久替换文件中出现的所有该字符串:

$ sed -i 's/batch/BATCH/i' .txt

执行以下命令查看.txt文件更新内容:

$ cat .txt

输出:

执行前面的命令后会出现以下输出:

示例 3:替换文件中特定出现的字符串

此示例显示了根据搜索字符串的精确匹配替换文件中特定出现的特定字符串的方法:

执行以下命令查看.txt文件的内容:

$ cat .txt

运行以下命令在 .txt 文件中搜索单词“0”,并使用“1”替换文件中出现的所有该字符串:

$ sed 's/0/1/' .txt

运行以下命令在 .txt 文件中搜索单词“0”,并使用“1”替换文件中第二次出现的该字符串:

$ sed 's/0/1/2' .txt

输出:

执行前面的命令后会出现以下输出:

示例 4:打印文件的替换行两次

本示例显示了根据搜索字符串的精确匹配替换文件中特定字符串并打印每个替换行两次的方法。

执行以下命令查看.txt文件的内容:

$ cat .txt

运行以下命令在 .txt 文件中搜索单词“BATCH”,并使用“Batch”替换文件中出现的所有该字符串,并打印替换的行两次:

$ sed 's/BATCH/Batch/p' .txt

输出:

执行前面的命令后会出现以下输出:

示例5:替换文件特定行的字符串

本示例显示了根据搜索字符串替换文件中特定行的特定字符串的方法。

执行以下命令查看.txt文件的内容:

$ cat .txt

运行以下命令在.txt文件中搜索单词“BATCH”,并使用“Batch”替换文件第二行中出现的该字符串:

$ sed '2 s/BATCH/Batch/i' .txt

输出:

执行前面的命令后会出现以下输出:

示例6:替换文件特定行范围的字符串

本示例显示了根据搜索字符串替换文件的特定行范围内的特定字符串的方法。

执行以下命令查看.txt文件的内容:

$ cat .txt

运行以下命令在.txt文件中搜索单词“BATCH”,并使用“Batch”替换文件第一行到第二行中出现的该字符串:

$ sed '1,2 s/BATCH/Batch/' .txt

输出:

执行前面的命令后会出现以下输出:

结论

“sed”命令是 Linux 中执行搜索和替换任务的一个非常有用的命令。它使得使用不同的搜索模式替换文件内容的任务变得更加容易。此处通过多个示例展示了如何使用“sed”命令根据精确匹配、搜索出现次数或行数来替换文件内容。我们希望Linux用户在正确阅读本教程后能够使用“sed”命令来替换文件内容。

评论(0)

二维码