首页 > 解决方案 > 无法在 unix 中使用 sed 进行匹配和替换

问题描述

我有一个名为的文件params.txt,文件中的内容将是 %test(dir='/home/spread',src=tab1,tgt=tab1,sch=xyz);

我需要一个 shell 脚本,我将在调用脚本时传递这 4 个参数。文件params.txt必须用我通过的任何内容进行更新。例如,

params.sh '/tmp/category' emp emp hr

更换前:

%test(dir='/home/spread',src=tab1,tgt=tab1,sch=xyz);

更换后:

%test(dir='/tmp/category',src=emp,tgt=emp,sch=hr);

我将多次调用脚本,并且需要使用执行脚本时传递的任何内容来更新参数。

标签: unixawksed

解决方案


听起来你只是在寻找

#!/bin/sh
printf "%%test(dir='%s',src=%s,tgt=%s,sch=%s);\n" "$@" >params.txt

推荐阅读