我正在处理由选项卡分隔的非常大的数据的多个文件。每行都有一个日期,但有些只包含'0'值是非常重要的。在文件中,如果期望的日期列为'0',则可以使用额外的日期列。如何用附加日期列的值替换“0”值的列?我的示例数据如下。另外下面有条件地将列值替换为另一列的值perl
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'](http://perldoc.perl.org/perlop.html#Equality-Operators) –
@HunterMcMillen当我使用如果($ F [2] == 0)而不是if($ F [2] = 0),我得到“Desired_date12/23/2014”作为我的输出,其余的数据都被吹走了。 $ F [2]的值为' 0“,但不是简单地将Desired_date域移动过来。 – JDE876
如果您更新问题中的代码,它将更具可读性。 –