【发布时间】:2023-03-15 20:48:01
【问题描述】:
我正在处理由制表符分隔的非常大数据的多个文件。每一行都有一个日期是非常重要的,但有些只包含一个值“0”。在文件中,如果所需的日期列是“0”,则可以使用附加的日期列。如何将具有“0”值的列替换为附加日期列的值?我的示例数据如下。
ID NAME Desired_Date Additional_Date
1234 jimbob 0 12/23/2014
2345 joejohn 12/30/2014 12/31/2014
下面是我想要的输出:
ID NAME Desired_Date Additional_Date
1234 jimbob 12/23/2014 12/23/2014
2345 joejohn 12/30/2014 12/31/2014
如您所见,我想复制所需日期为“0”的其他日期。我尝试了一些代码,但似乎没有奏效。
while (<>) {
my @F = split;
if ($F[2] == 0) {
print $F[2] = $F[3];
}
}
print "@F\n";
当前输出为:
Desired_date12/23/2014
【问题讨论】:
-
比较需要使用
==,=是赋值运算符。perlop#Equality -
@HunterMcMillen 当我使用 if ($F[2] == 0) 而不是 if ($F[2] = 0) 我得到 "Desired_date12/23/2014" 作为我的输出和其余的数据被吹走。它仍在识别 $F[2] 的值为“0”,但不是简单地将 Desired_date 归档。
-
如果你更新问题中的代码,它的可读性会好很多。
标签: perl split conditional-statements