搜索并替换文件内容

搜索并替换文件内容

我想在文件中搜索字符并替换为包含内容的文件:ktr_updater使用 Unix 命令在文件中搜索并替换为另一个文件中的文件内容。

sed -i 's/ktr_updater/'"$ktrupdate"'/g' samplejob.kjb

答案1

perl -pi -e 'BEGIN{local $/; $r = <STDIN>} s/ktr_updater/$r/g
            ' file < other-file

将编辑file in-place 和substitude 每一次(g全局)出现ktr_updaterwith $r,并在ning 时用可以读取的内容$r进行初始化(由于记录分隔符未设置,通过在 BEGIN 语句中声明它而不带值) ,stdin 已被重定向到.BEGINSTDINlocalother-file

使用 GNUsed或兼容版本,您可以通过将文件内容存储在 shell 变量中来执行相同的操作,将其转换为适合作为sed s命令替换的内容并调用sed

repl=$(cat other-file; echo .); repl=${repl%.}
escaped_repl=$(printf '%s\n' "$repl" | sed 's:[\/&]:\\&:g;$!s/$/\\/')
sed -i "s/ktr_updater/$escaped_repl/g" file

相关内容