📜  使用 sed 替换 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:36:34.217000             🧑  作者: Mango

使用 sed 替换 - Shell-Bash

简介

在 Shell-Bash 程序中,sed 是一个十分强大的命令行工具。sed 可以帮助我们搜索、替换、删除文本中的字符串。本文将介绍如何使用 sed 命令进行字符串替换。

语法

使用 sed 命令进行替换的语法如下:

sed 's/要被替换的字符串/新的字符串/g' 文件名
  • s 表示替换操作,/ 是分隔符,可以用其他字符代替,比如 |
  • 要被替换的字符串 是要被替换的字符串,可以用正则表达式进行匹配。
  • 新的字符串 是要替换成的新字符串。
  • g 表示替换所有匹配到的字符串。

如果要直接替换掉原文件中的内容,可以使用 -i 选项,即:

sed -i 's/要被替换的字符串/新的字符串/g' 文件名
示例

下面是一个示例,替换 file.txt 文件中的所有 old_stringnew_string

sed 's/old_string/new_string/g' file.txt

如果要直接替换掉 file.txt 文件中的内容,可以使用 -i 选项,即:

sed -i 's/old_string/new_string/g' file.txt
正则表达式

sed 命令中,可以使用正则表达式进行匹配。下面是一些常用的正则表达式:

  • . 匹配任意单个字符
  • ^ 匹配开头
  • $ 匹配结尾
  • * 匹配前一个字符出现 0 次或多次
  • + 匹配前一个字符出现 1 次或多次
  • ? 匹配前一个字符出现 0 次或 1 次
  • [abc] 匹配 a、b 或 c 这三个字符中的任意一个
  • [a-z] 匹配任意小写字母
  • [A-Z] 匹配任意大写字母
  • \d 匹配数字,等同于 [0-9]
  • \D 匹配非数字,等同于 [^0-9]
  • \w 匹配单词字符(字母、数字、下划线)
  • \W 匹配非单词字符(除了字母、数字、下划线之外的字符)

例如,使用正则表达式替换掉 file.txt 文件中的所有以 hello 开头的字符串:

sed 's/^hello/new_string/g' file.txt
总结

sed 命令是一种十分强大的字符串替换工具,可以实现搜索、替换、删除等多种操作。本文简单介绍了 sed 命令的语法,以及如何使用正则表达式进行匹配。希望可以帮助大家更好地掌握 sed 命令的使用方法。