Sql sed命令不能正常工作

Sql sed命令不能正常工作,sql,bash,sed,Sql,Bash,Sed,我正在执行 /bin/sed -i '/^$/d' $PRIMARY_K VALUE=`/bin/cat $PRIMARY_K` echo "$VALUE" PK=SYS NEW="$PK$VALUE" echo "New Primary Key Constraint for $s- $NEW" /bin/sed "s/$VALUE/$NEW/g" ../../../PartitioningUtility/sql/table7.sql > ../.

我正在执行

/bin/sed -i '/^$/d' $PRIMARY_K
    VALUE=`/bin/cat $PRIMARY_K`
    echo "$VALUE"
    PK=SYS
    NEW="$PK$VALUE"
echo "New Primary Key Constraint for $s- $NEW"  

 /bin/sed "s/$VALUE/$NEW/g" ../../../PartitioningUtility/sql/table7.sql > 
../../../PartitioningUtility/sql/exe.sql
最后一行
/bin/sed“s/$VALUE/$NEW/g”
未替换该值

当我尝试使用硬编码值时,它是有效的。 我试过了

/bin/sed "s/MAYUR/SAWANT/g" 
它起作用了。 任何建议。

将脚本更改为:

awk -v s="$s" '
NR==FNR {
    if (NF) {
        value = $1
        print value | "cat>&2"

        pk = "SYS"
        new = pk value

        printf "New Primary Key Constraint for %s- %s\n", s, new | "cat>&2"
    }
    next
}
{
    gsub(value,new)
    print
}
' "$PRIMARY_K" ../../../PartitioningUtility/sql/table7.sql > 
../../../PartitioningUtility/sql/exe.sql
修复您当前的错误和未决的性能、维护、可靠性等问题

将数字放在每行的字段之前很简单:

awk '{ for (i=1; i<=NF; i++) printf "%s%s.%s",(i==1?"":OFS),i,$i; print "" }'

awk'{for(i=1;iso)在运行
sed
之前,
${VALUE}
${NEW}
的值是多少(即:由脚本设置)?SYS_C0010379在那之后SYSSYS_C0010379你有任何错误吗?哪些错误?你确定你的sql转储中有
SYS_C0010379
?我得到的输出是SYS_C0010379 AGENTSTATEFACT的新主键约束-SSYS_C0010379你可能在$Primary_K行的开头或结尾有空格。添加一个
cat-v“$PRIMARY\u K”
,将您的
echo“$VALUE”
替换为
echo”\“$VALUE\”"
然后在您的问题中发布运行脚本的输出,而不是作为注释中的片段。我想在输出文件的内容中添加编号…可能的方法是什么?现在ASD ASY WER WSD After 1.ASD 2.ASY 3.WER 4.WSDUpdate您的问题,或者更好的是,发布一个新问题,但无论哪种方法都会发布示例输入和预期结果输出,因为根本不清楚您现在问的问题与原始问题的关系。stackoverflow阻止了我