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

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

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

类似地,数字可以用模式来代替。下面的 sed 命令以 [0-9] 替换所有数字为 number

  1. # sed 's/[0-9]/number/g' sed-test.txt
  2.  
  3. number Unix unix unix numbernumber
  4. number linux Linux numbernumber
  5. number linuxunix UnixLinux
  6. linux /bin/bash CentOS Linux OS
  7. Linux is free and opensource operating system

12) 如何用模式仅查找和替换两个数字

如果你想用模式来代替两位数字,使用下面的 sed 命令。

  1. # sed 's/b[0-9]{2}b/number/g' sed-test.txt
  2.  
  3. 1 Unix unix unix number
  4. 2 linux Linux number
  5. 3 linuxunix UnixLinux
  6. linux /bin/bash CentOS Linux OS
  7. Linux is free and opensource operating system

13) 如何用 sed 命令仅打印被替换的行

如果你想显示仅更改的行,使用下面的 sed 命令。

  • p - 它在终端上输出替换的行两次。
  • -n - 它抑制由 p 标志所产生的重复行。
  1. # sed -n 's/Unix/Linux/p' sed-test.txt
  2.  
  3. 1 Linux unix unix 23
  4. 3 linuxunix LinuxLinux

14) 如何同时运行多个 sed 命令

以下 sed 命令同时检测和置换两个不同的模式。

下面的 sed 命令搜索 linuxunixCentOS 模式,用 LINUXUNIXRHEL8 一次性更换它们。

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

下面的 sed 命令搜索替换两个不同的模式,并一次性替换为一个字符串。

以下 sed 的命令搜索 linuxunixCentOS 模式,用 Fedora30 替换它们。

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

15) 如果给定的模式匹配,如何查找和替换整个行

如果模式匹配,可以使用 sed 命令用新行来代替整行。这可以通过使用 c 标志来完成。

  1. # sed '/OS/ c
  2. New Line
  3. ' sed-test.txt
  4.  
  5. 1 Unix unix unix 23
  6. 2 linux Linux 34
  7. 3 linuxunix UnixLinux
  8. New Line
  9. Linux is free and opensource operating system

16) 如何搜索和替换相匹配的模式行

sed 命令中你可以为行指定适合的模式。在匹配该模式的情况下,sed 命令搜索要被替换的字符串。

下面的 sed 命令首先查找具有 OS 模式的行,然后用 ArchLinux 替换单词 Linux

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

(编辑:南京站长网)

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

热点阅读