加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

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

下面的 sed 命令在一行中替换从模式的“第 N 个”开始的匹配实例。

  1. # sed 's/unix/linux/2g' 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

5) 在特定的行号搜索和替换模式

你可以替换特定行号中的字符串。下面的 sed 命令用 linux 仅替换第三行的 unix 模式。

  1. # sed '3 s/unix/linux/' sed-test.txt
  2.  
  3. 1 Unix unix 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

6) 在特定范围行号间搜索和替换模式

你可以指定行号的范围,以替换字符串。

下面的 sed 命令在 1 到 3 行间用 linux 替换 Unix 模式。

  1. # sed '1,3 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

7) 如何查找和修改最后一行的模式

下面的 sed 命令允许你只在最后一行替换匹配的字符串。

下面的 sed 命令只在最后一行用 Unix 替换 Linux 模式。

  1. # sed '$ s/Linux/Unix/' 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. Unix is free and opensource operating system

8) 在一行中如何只查找和替换正确的模式匹配

你可能已经注意到,子串 linuxunix 被替换为在第 6 个示例中的 linuxlinux。如果你只想更改正确的匹配词,在搜索串的两端用这个边界符 b

  1. # sed '1,3 s/bunixb/linux/' sed-test.txt
  2.  
  3. 1 Unix linux 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

9) 如何以不区分大小写来搜索与替换模式

大家都知道,Linux 是区分大小写的。为了与不区分大小写的模式匹配,使用 I 标志。

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

10) 如何查找和替换包含分隔符的字符串

当你搜索和替换含分隔符的字符串时,我们需要用反斜杠 来取消转义。

在这个例子中,我们将用 /usr/bin/fish 来替换 /bin/bash

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

上述 sed 命令按预期工作,但它看起来来很糟糕。 为了简化,大部分的人会用竖线 | 作为正则表达式的定位符。 所以,我建议你用它。

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

11) 如何以给定的模式来查找和替换数字

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读