- 论坛徽章:
- 0
|
参数文件:
&ENV.=XXX
&FCM..=&ENV..CM
...
要替换的文件:
FILE: &FCM..LOCATION
=号两边作为数组变量
参数文件本身需要把&ENV.替换成XXX:
XXX=XXX
&FCM..=XXX.CM
...
格式化参数文件,因为sed不支持-i选项,只好重定向到一个文件:
sed -e "\/\/\*/d;s/\/\/ *SET /\&/g;s/='/\.=/g;s/=\&/\.=\&/g;s/' *$//g;s/ *$//g;" CMVARS > parm
处理参数文件,用数组替换:
awk -F= 'BEGIN{ while((getline<"parm")>0){ if ($0~/^\&ENV/){a[$1]=($2);} } close("parm") } { for(x in a){ if ($0~x){ gsub(x, a[x]); } } print$0 }' parm > env
处理需要替换的文件
awk -F= 'BEGIN{ while((getline<"env")>0){ if ($0~/^\&.*\./){a[$1]=($2);} } close("env") } { for(x in a){ if ($0~x){ gsub(x, a[x]); } } print$0 }' file
文件IO太多了,如何改进? |
|