设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

使用sed命令查找和替换文件中的字符串的16个示例

发布时间:2019-09-23 16:23 所属栏目:117 来源:Magesh Maruthamuthu
导读:当你在使用文本文件时,很可能需要查找和替换文件中的字符串。 sed 命令主要用于替换一个文件中的文本。在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成。 在本教程中,我们将告诉你使用 sed 命令如何做到这一点,然后讨论讨论 awk 命令相关的。 sed

使用sed命令查找和替换文件中的字符串的16个示例

当你在使用文本文件时,很可能需要查找和替换文件中的字符串。sed 命令主要用于替换一个文件中的文本。在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成。

在本教程中,我们将告诉你使用 sed 命令如何做到这一点,然后讨论讨论 awk 命令相关的。

sed 命令是什么

sed 命令表示 Stream Editor(流编辑器),用来在 Linux 上执行基本的文本操作。它可以执行各种功能,如搜索、查找、修改、插入或删除文件。

此外,它也可以执行复杂的正则表达式匹配。

它可用于以下目的:

  • 查找和替换匹配给定的格式的内容。
  • 在指定行查找和替换匹配给定的格式的内容。
  • 在所有行查找和替换匹配给定的格式的内容。
  • 搜索并同时替换两种不同的模式。

本文列出的十五个例子可以帮助你掌握 sed 命令。

如果要使用 sed 命令删除文件中的行,去下面的文章。

注意:由于这是一篇演示文章,我们使用不带 -i 选项的 sed 命令,该选项会在 Linux 终端中删除行并打印文件内容。

但是,在实际环境中如果你想删除源文件中的行,使用带 -i 选项的 sed 命令。

常见的 sed 替换字符串的语法。

  1. sed -i 's/Search_String/Replacement_String/g' Input_File

首先我们需要了解 sed 语法来做到这一点。请参阅有关的细节。

  • sed:这是一个 Linux 命令。
  • -i:这是 sed 命令的一个选项,它有什么作用?默认情况下,sed 打印结果到标准输出。当你使用 sed 添加这个选项时,那么它会在适当的位置修改文件。当你添加一个后缀(比如,-i.bak)时,就会创建原始文件的备份。
  • s:字母 s 是一个替换命令。
  • Search_String:搜索一个给定的字符串或正则表达式。
  • Replacement_String:替换的字符串。
  • g:全局替换标志。默认情况下,sed 命令替换每一行第一次出现的模式,它不会替换行中的其他的匹配结果。但是,提供了该替换标志时,所有匹配都将被替换。
  • /:分界符。
  • Input_File:要执行操作的文件名。

让我们来看看文件中用sed命令来搜索和转换文本的一些常用例子。

我们已经创建了用于演示的以下文件。

  1. # cat sed-test.txt
  2.  
  3. 1 Unix unix unix 23
  4. 2 linux Linux 34
  5. 3 linuxunix UnixLinux
  6. linux /bin/bash CentOS Linux OS
  7. Linux is free and opensource operating system

1) 如何查找和替换一行中“第一次”模式匹配

下面的 sed 命令用 linux 替换文件中的 unix。这仅仅改变了每一行模式的第一个实例。

  1. # sed 's/unix/linux/' sed-test.txt
  2.  
  3. 1 Unix linux unix 23
  4. 2 linux Linux 34
  5. 3 linuxlinux UnixLinux
  6. linux /bin/bash CentOS Linux OS
  7. Linux is free and opensource operating system

2) 如何查找和替换每一行中“第 N 次”出现的模式

在行中使用/1/2……/n 等标志来代替相应的匹配。

下面的 sed 命令在一行中用 linux 来替换 unix 模式的第二个实例。

  1. # sed 's/unix/linux/2' sed-test.txt
  2.  
  3. 1 Unix unix linux 23
  4. 2 linux Linux 34
  5. 3 linuxunix UnixLinux
  6. linux /bin/bash CentOS Linux OS
  7. Linux is free and opensource operating system

3) 如何搜索和替换一行中所有的模式实例

下面的 sed 命令用 linux 替换 unix 格式的所有实例,因为 g 是一个全局替换标志。

  1. # sed 's/unix/linux/g' sed-test.txt
  2.  
  3. 1 Unix linux linux 23
  4. 2 linux Linux 34
  5. 3 linuxlinux UnixLinux
  6. linux /bin/bash CentOS Linux OS
  7. Linux is free and opensource operating system

4) 如何查找和替换一行中从“第 N 个”开始的所有匹配的模式实例

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读