【发布时间】:2017-08-16 16:12:42
【问题描述】:
我正在用 perl 编写一个 shell 脚本,它从两个数据库中获取值并进行比较。当脚本完成后,它会输出一个应该以这种方式格式化的报告:
数据库 1 中的表名日期值 数据库 2 中的值差异
输出被打印到报告文件中,但即使输出到命令控制台,它也看起来像这样:
tablename 2017-06-20 7629628
7629628
0
这是我生成字符串然后将其输出到文件的代码:
$outputstring="$tablelist[0] $DATErowcount0[$output_iteration] $rowcount0[$output_iteration] $TDrowcount0[$output_iteration] $count_dif\n";
print FILE $outputstring;
$rowcount0[$output_iteration] 之后和 $count_dif 之前似乎隐藏了一个换行符。我需要做些什么来解决这个问题/将其全部打印在一行中?
为了用值填充数组,从 SQL 命令创建的文件中读取值。
以下是部分代码:
`$num_from_TDfile=substr $r2, 16;
$date_from_TDfile = substr $r2, 0, 12;
$TDrowcount0[$TDnum_rows0]=$num_from_TDfile;
$DATETDrowcount0[$TDnum_rows0]=$date_from_TDfile;
$TDnum_rows0=$TDnum_rows0+1;`
【问题讨论】:
-
拥有几个不相关的数组而不是数组数组会使这段代码非常笨拙。想想你是如何捕获这些数据的。您的某些数据需要
chomp处理。 -
您应该在edit 您的问题中包含填充
@tablelist和其他数组的代码。 -
我会尝试为数组添加 chomp 语句,谢谢你的想法。
-
用于两个数据库的数组的填充方式与上面的代码相同