我正在尝试将数据库类型转换为另一种数据库类型。它不仅仅是一个简单的替换,而是我希望通过特定因子扩展列长度。例如:
NATIONAL CHARACTER VARYING(50) ----> VARCHAR(60)
这可以使用波纹管sed命令来实现,但它不会保留前导空格。我怀疑问题出在评估计算所需的结束标志/ ge中。
sed -r 's/(^.*)NATIONAL CHARACTER VARYING\(([0-9]+)\)/ echo \1 VARCHAR"("$(echo "scale=0;\2*1.2\/1"\|bc)")"/ge'
答案 0 :(得分:2)
在echo
时引用反向引用。说:
sed -r 's/(^.*)NATIONAL CHARACTER VARYING\(([0-9]+)\)/ echo "\1"VARCHAR"("$(echo "scale=0;\2*1.2\/1"\|bc)")"/ge' filename