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

Written by

in

文章目录
  • 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:全局替换(否则每行只替换第一个匹配项)。
  • sed -i ‘s/原字符串/新字符串/gI’ 文件名 示例:替换 hello 为 hi,并忽略大小写(Hello、HELLO 也会被替换) sed -i ‘s/hello/hi/gI’ file.txt
  • 如果替换的内容包含 / 或其他特殊字符,可以改用 | 或 # 作为分隔符: 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
  • sed -i ‘行号s/原字符串/新字符串/’ 文件名 示例:仅在第 5 行替换 foo 为 bar sed -i ‘5s/foo/bar/’ file.txt
  • sed -i.bak ‘s/old/new/g’ file.txt 这会生成 file.txt.bak 备份文件,再修改 file.txt。
  • awk ‘{gsub(/原字符串/, “新字符串”); print}’ 原文件 > 新文件 示例:替换 data.txt 中的 apple 为 orange,并保存到 new_data.txt awk ‘{gsub(/apple/, “orange”); print}’ data.txt > new_data.txt
  • perl -pi -e ‘s/原字符串/新字符串/g’ 文件名 示例:替换 error 为 warning perl -pi -e ‘s/error/warning/g’ log.txt
  • 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’ {} ;
  • 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 shell字符串截取、替换、删除以及trim代码示例 linux shell字符串操作详解(长度、读取、替换、截取、连接、对比、删除及位置) Linux使用sed命令替换字符串教程 Linux C字符串替换函数实例详解 linux shell字符串内置的常用操作(获取长度、查找、替换)
  • 目录
    • 1. 基本替换(sed 命令)
    • 2. 替换时忽略大小写(sed + I 选项)
    • 3. 替换时使用变量(避免特殊字符冲突)
    • 4. 替换指定行(sed 限定行号)
    • 5. 替换前备份原文件(sed -i.bak)
    • 6. 使用 awk 替换
    • 7. 使用 perl 替换
    • 8. 替换多个文件(find + sed)
    • 9. 交互式替换(vim 命令)
    • 总结

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

    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:全局替换(否则每行只替换第一个匹配项)。

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

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

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

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

    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
    

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

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

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

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

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

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

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

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

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

    示例:替换 error 为 warning

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

    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' {} ;
    

    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 shell字符串截取、替换、删除以及trim代码示例
    • linux shell字符串操作详解(长度、读取、替换、截取、连接、对比、删除及位置)
    • Linux使用sed命令替换字符串教程
    • Linux C字符串替换函数实例详解
    • linux shell字符串内置的常用操作(获取长度、查找、替换)

    站内搜索