sed问题。shell脚本下的sed有点奇怪,求解答

2025-02-10 15:41:42
推荐回答(1个)
回答1:

#!/bin/bash
STRING="strncpy(orderInfo.szParam, param.getString(\"szParam\").c_str(), sizeof(orderInfo.szParam) - 1); szMemo"
cat 1.txt|while read line
do
param=`echo $line|awk '{print $1}'`
memo=`echo $line|awk '{print $2}'`
echo $STRING|sed "s/szParam/$param/; s/szMemo/$memo/"
echo $dst
done

1.txt 内容:

001 002 003 004
aa    bb    cc    dd

输出:

strncpy(orderInfo.001, param.getString("szParam").c_str(), sizeof(orderInfo.szParam) - 1); 002
strncpy(orderInfo.aa, param.getString("szParam").c_str(), sizeof(orderInfo.szParam) - 1); bb

这个语句有问题:

echo $STRING|sed "s/szParam/$param/; sed/szMemo/$memo/"

我改成:

echo $STRING|sed "s/szParam/$param/; s/szMemo/$memo/"

或者

echo $STRING| sed "s/szParam/$param/" | sed "s/szMemo/$memo/"