我正在开发一个项目,我们正在处理使用ksh脚本和Perl脚本从数据库表导入/导出数据。我们有一个将数据从表导出到文件的现有流程,然后将其导入另一个系统。
这是catch - 导出进程转储管道分隔文件,而执行导入的系统需要由ASCII组分隔符字符分隔的文件,即十进制29,十六进制1d或八进制35.它在vi中显示为^]现在,我正在通过Perl脚本转换分隔符。我想做的是告诉我们的导出过程只使用我们期望的分隔符。类似的东西:
export_table.ksh -d'\ 035'
问题是我无法弄清楚如何将此字符传递给导出脚本。
我尝试了各种单引号,双引号,反斜杠以及此字符的八进制和十六进制版本的组合。
我在Solaris 10上使用ksh和/或Perl。
答案 0 :(得分:2)
你试过了吗?
$ '\ X29'
实际上尝试这个]:
echo $'\x5d'
和^
echo $'\x5e'
所以你只需要这样做:
export_table.ksh -d $'\x5e\x5d'
答案 1 :(得分:0)
在bash(1)中,可以使用^ v为字符添加前缀,以逐字输入该字符。也许ksh(1)做同样的事情?