无法在unix中使用sed进行匹配和替换

无法在unix中使用sed进行匹配和替换,unix,awk,sed,Unix,Awk,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(di

我有一个名为
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);
更换后:

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

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

听起来您只是在寻找

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

这是一个基于sas的脚本,我需要使用shell脚本调用它。我正在使用宏调用文件中提到的参数。我试着用“sed”来替换,但我不知道如何使用正则表达式来解析像符咒一样的必需字段。非常感谢你,特里皮。“$@”说明了什么?命令行参数作为正确引用的列表。谷歌允许你在这些天;我的热门歌曲是