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阻止了我