【问题标题】:How to remove invisible new line characters in Perl如何在 Perl 中删除不可见的换行符
【发布时间】: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 语句,谢谢你的想法。
  • 用于两个数据库的数组的填充方式与上面的代码相同

标签: shell perl


【解决方案1】:

按照 tadman 的建议,将 chomp 添加到从文件中提取的每个字符串中修复了输出,使其全部位于一行而不是问题示例中的三行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多