我正在执行
/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"
未替换该值。
当我尝试使用 HARDCODED 值时,它正在运行。 例如。我试过了
/bin/sed "s/MAYUR/SAWANT/g"
它的工作。 任何建议。
答案 0 :(得分:1)
将您的脚本更改为:
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 "" }'
如果这不能回答您的评论中的问题,请询问带有示例输入和预期输出的新问题。