如何使用 SED 替换文件中的变量

How to Replace a Variable in a File Using SED

想知道使用 SED 命令替换文件中变量的技巧吗?

本文将概述如何使用 SED 替换文件中的变量值。在使用 SED 替换文件中的变量之前,您需要了解什么是 SED、SED 的语法以及 SED 的工作原理。

我还将展示如何使用 SED 执行删除操作。 这将在变量值替换部分之后进行。 如果您正在寻找该部分,您可以直接跳到那里,跳过其余部分。

那么,让我们开始本指南吧。

 

什么是 SED?

那么,什么是 SED 呢?

Linux 中的 SED 命令代表流编辑器(Stream Editor)。它执行搜索、插入、查找和替换、删除。在 Linux 世界中,SED 主要因其查找和替换功能而受欢迎。

借助 SED,编码人员甚至可以在不打开文件的情况下编辑文件。

简而言之,

  • SED 是一种文本流编辑器。它可用于在 Linux 中执行查找和替换、插入和删除操作。

  • 您可以根据您的需求修改文件,而无需打开它们。

  • SED 还能够执行复杂的模式匹配。

 

SED 的语法

在这里,我们将看到在简单字符串替换中使用的 SED 语法。这将有助于更好地理解该命令。

所以语法是

sed -i 's/old-string/new-string/g' file_name

 

SED 的工作原理

在语法中,您只需要提供一个合适的“新字符串”名称,您希望用它来替换“旧字符串”。 当然,也需要输入旧字符串名称。

然后,在“file_name”的位置提供文件名,旧字符串将从该文件中被找到并替换。

这是一个快速示例,以澄清概念。

假设,我们在名为“file.txt”的文本文件中有一个随机文本“Welcome to Linux Channel”。

现在,我们想用“Family”替换“Channel”。我们该怎么做呢?

首先,在终端中写入下面给出的命令以创建文件。

cat file.txt

按 Enter 键,然后输入

Welcome to Linux Channel

现在让我们用“Family”更改“Channel”。因此,转到下一行,然后输入

sed -i 's/Channel/Family/g' file.txt

运行命令后,要再次查看文件,请输入

cat file.txt

您会看到“Channel”已被替换为“Family”。通过这种方式,您可以使用 SED 命令替换字符串。现在让我们学习如何使用 SED 替换变量。

 

如何使用 SED 替换文件中的变量

使用 SED 查找和替换变量值的语法与替换字符串的语法几乎相同。

sed -i 's/var=.*/var=new_value/' file_name

现在,我们将看一个示例,以了解命令的实现。

让我们使用以下命令创建一个 Python 代码文件

cat code.py

在终端中写入上述命令后,写入

# This program adds two numbers

num1 = 1.5

num2 = 6.3


# Add two numbers

sum = num1 + num2


# Display the num

print(‘The sum of {0} and {1} is {2}’.format(num1, num2, sum))

现在,输入以下行

sed -i 's/num1 =.*/num1 =200/' code.py

此 SED 命令将查找变量“num1”,然后将新值输入为“200”。

执行命令后,通过输入以下命令显示文件内容

cat code.py

您会注意到“num1”变量的值已被替换为给定的新输入。

 

使用 SED 命令删除行

有不同的 SED 语法用于删除文件中的行。如果您想删除行,请使用 SED 命令。这也可以在不打开文件的情况下完成。

  • 删除行(例如第 n 行)的语法

sed 'nd' filename.txt

示例

sed ‘44d’ filename.txt
  • 删除最后一行的语法

sed '$d' filename.txt
  • 用于删除从 x 行到 y 行范围内的行

sed 'x,yd' filename.txt

示例

sed '3,6d' filename.txt
  • 从第 n 行到最后一行的删除语法

sed 'nth,$d' filename.txt

示例

sed '12,$d' filename.txt

 

结论

本文到此结束。希望本文已解答您正在寻找的所有答案。在本文中,您学习了什么是 SED、SED 的工作原理、如何替换文件中的字符串、如何替换文件中的变量以及如何执行删除操作。

要了解有关 Linux 的更多信息,请关注 Linux Journal 博客。

Suparna 是一位自由撰稿人,撰写关于 Linux 的文章,包括技巧、窍门和操作指南。

加载 Disqus 评论