我正在处理由tab分隔的大量数据的多个文件。非常重要的是每行都有一个日期,但有些只包含值'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
答案 0 :(得分:0)
您的代码有两个问题:
0
时,您应该只复制备用值 - 而不是打印分配结果。print "@F\n"
都在循环之外,因此它只运行一次。工作代码:
while (<>) {
my @F = split;
if ($F[2] == 0) {
$F[2] = $F[3];
}
print join("\t", @F) . "\n";
}