Linux中替换文件中的某个字符串的常用命令详解

 更新时间:2025年06月08日 08:28:20   作者:思静鱼  
当你在使用文本文件时,很可能需要查找和替换文件中的字符串,sed 命令主要用于替换一个文件中的文本,本文给大家介绍了Linux中替换文件中的某个字符串的常用命令,需要的朋友可以参考下

如果你想在 Linux 中替换文件中的某个字符串,可以使用以下命令:

1. 基本替换(sed 命令)

sed -i 's/原字符串/新字符串/g' 文件名

示例:将 file.txt 中所有的 old_text 替换成 new_text

sed -i 's/old_text/new_text/g' file.txt

选项说明

  • -i:直接修改文件(不加 -i 则只输出到终端,不修改文件)。
  • s/:表示替换(substitute)。
  • g:全局替换(否则每行只替换第一个匹配项)。

2. 替换时忽略大小写(sed + I 选项)

sed -i 's/原字符串/新字符串/gI' 文件名

示例:替换 hello 为 hi,并忽略大小写(HelloHELLO 也会被替换)

sed -i 's/hello/hi/gI' file.txt

3. 替换时使用变量(避免特殊字符冲突)

如果替换的内容包含 / 或其他特殊字符,可以改用 | 或 # 作为分隔符:

sed -i "s|原字符串|$变量名|g" 文件名

示例:用变量 $new_ip 替换文件中的 192.168.1.1

new_ip="10.0.0.1"
sed -i "s|192.168.1.1|$new_ip|g" config.txt

4. 替换指定行(sed 限定行号)

sed -i '行号s/原字符串/新字符串/' 文件名

示例:仅在第 5 行替换 foo 为 bar

sed -i '5s/foo/bar/' file.txt

5. 替换前备份原文件(sed -i.bak)

sed -i.bak 's/old/new/g' file.txt

这会生成 file.txt.bak 备份文件,再修改 file.txt

6. 使用 awk 替换

awk '{gsub(/原字符串/, "新字符串"); print}' 原文件 > 新文件

示例:替换 data.txt 中的 apple 为 orange,并保存到 new_data.txt

awk '{gsub(/apple/, "orange"); print}' data.txt > new_data.txt

7. 使用 perl 替换

perl -pi -e 's/原字符串/新字符串/g' 文件名

示例:替换 error 为 warning

perl -pi -e 's/error/warning/g' log.txt

8. 替换多个文件(find + sed)

find /路径 -type f -name "*.txt" -exec sed -i 's/old/new/g' {} \;

示例:替换 /etc/nginx/ 目录下所有 .conf 文件中的 example.com 为 mysite.com

find /etc/nginx/ -type f -name "*.conf" -exec sed -i 's/example.com/mysite.com/g' {} \;

9. 交互式替换(vim 命令)

vim 文件名
:%s/原字符串/新字符串/g
:wq

示例:在 vim 中替换 cat 为 dog

vim animals.txt
:%s/cat/dog/g
:wq

总结

需求命令
基本替换sed -i 's/old/new/g' file
忽略大小写sed -i 's/old/new/gI' file
使用变量`sed -i "s
替换指定行sed -i '5s/old/new/' file
备份原文件sed -i.bak 's/old/new/g' file
多文件替换find /path -name "*.ext" -exec sed -i 's/old/new/g' {} \;

以上就是Linux中替换文件中的某个字符串的常用命令详解的详细内容,更多关于Linux替换文件字符串的资料请关注脚本之家其它相关文章!

相关文章

  • Linux解压缩(打开)Gz文件的命令详解

    Linux解压缩(打开)Gz文件的命令详解

    GNU 的 Gzip 是一种流行的数据压缩程序,而 GZ 文件是由标准 Gzip 压缩的存档文件,本文给大家介绍了如何在Linux解压缩(打开)Gz 文件,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12
  • Shell脚本四则运算符号实用的技巧和注意事项

    Shell脚本四则运算符号实用的技巧和注意事项

    这篇文章主要介绍了Shell脚本四则运算符号实用的技巧和注意事项,文中通过示例代码介绍了基本的算术运算符号(加、减、乘、除)、浮点数运算(使用bc命令),以及自增、自减和复合赋值运算符的使用技巧,需要的朋友可以参考下
    2025-04-04
  • linux lsof命令详解及实例

    linux lsof命令详解及实例

    这篇文章主要介绍了linux lsof命令详解的相关资料,lsof是一个列出当前系统打开文件的工具,这里详细介绍如何使用,需要的朋友可以参考下
    2017-03-03
  • linux下使用perl获取本机ip的几种方法介绍

    linux下使用perl获取本机ip的几种方法介绍

    需要获取本机ip有很多种情景,比如做分布式处理的时候。那么,如何在worker脚本里获取本机ip?本文列举了一系列的方法,有长有短,各有优劣,有shell有perl有python
    2013-02-02
  • linux下自动备份MySQL数据并上传到FTP上的shell脚本

    linux下自动备份MySQL数据并上传到FTP上的shell脚本

    linux下自动备份MySQL数据并上传到FTP上的shell脚本,需要的朋友可以参考下
    2013-01-01
  • Linux中执行shell脚本的4种方法总结

    Linux中执行shell脚本的4种方法总结

    这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下
    2014-08-08
  • Shell脚本实现获取网页快照并生成缩略图

    Shell脚本实现获取网页快照并生成缩略图

    这篇文章主要介绍了Shell脚本实现获取网页快照并生成缩略图,本文获取网页快照使用phantomjs、生成缩略图使用ImageMagick,需要的朋友可以参考下
    2015-02-02
  • linux下socket编程常用头文件(推荐)

    linux下socket编程常用头文件(推荐)

    这篇文章主要介绍了linux下socket编程常用头文件,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-10-10
  • Shell脚本中$符号的嵌套使用方法小结

    Shell脚本中$符号的嵌套使用方法小结

    在编写Shell脚本时,通过嵌套使用$符号,间接获取变量或表达式的值的具体方法,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-05-05
  • Shell处理带空格的文件名的方法

    Shell处理带空格的文件名的方法

    这篇文章主要介绍了Shell处理带空格的文件名的方法,文中总结了若干处理带空格的文件名的技巧,需要的朋友可以参考下
    2014-06-06

最新评论