1

我正在处理一个项目,我们正在处理使用 ksh 脚本和 Perl 脚本从数据库表中导入/导出数据。我们有一个将数据从表导出到文件的现有流程,然后将其导入另一个系统。

这是一个问题 - 导出过程转储出管道分隔的文件,而正在执行导入的系统需要由十进制 29、十六进制 1d 或八进制 35 的 ASCII 组分隔符分隔的文件。它在 vi 中显示为 ^] 对现在,我正在通过 Perl 脚本转换分隔符。我想做的是告诉我们的导出过程只使用我们期望的分隔符。就像是:

export_table.ksh -d '\035'

问题是我不知道如何将此字符传递给导出脚本。

我尝试了单引号、双引号、反斜杠以及此字符的八进制和十六进制版本的各种组合。

我在使用 ksh 和/或 Perl 的 Solaris 10 上。

4

2 回答 2

2

你有没有尝试过:

$'\x29'

实际上试试这个]:

echo $'\x5d'

对于 ^

echo $'\x5e'

所以你只需要这样做:

export_table.ksh -d $'\x5e\x5d'
于 2010-01-20T19:07:06.953 回答
0

在 bash(1) 中,可以在字符前加上 ^v 以逐字输入该字符。也许 ksh(1) 也一样?

于 2010-01-20T19:09:27.527 回答