时间:2023-02-20 09:44:01 | 来源:建站知识
时间:2023-02-20 09:44:01 来源:建站知识
Linux批量替换文件内容(域名、IP、变量等文本):sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`
实例sed -i "s/old.com/new.com/g" `grep old.com -rl /root/github/docs/`#实测处理3.5k个文件只需要最多8秒(包含子目录)
注意要点sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`sed命令参数解释: sed 命令是利用脚本来处理文本文件。可依照脚本的指令来处理、编辑文本文件。主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 -i :表示inplace edit,就地修改文件。sed 的 -i 选项可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订! s :取代替换,通常这个 s 的动作可以搭配正则表达式!例如 s/old/new/g 就是把old字符替换成new字符!grep命令参数解释: grep 命令用于查找文件里符合条件的字符串。 -r 表示搜索子目录。-r, --recursive like --directories=recurse 。此参数的效果和指定"-d recurse"参数相同。recurse=递归子目录 (参数 -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。) -l 表示输出匹配的文件名。 -l, --files-with-matches print only names of FILEs with selected lines
参考资料关键词:变量,文本,内容,替换,文件