我正在處理由選項卡分隔的非常大的數據的多個文件。每行都有一個日期,但有些只包含'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
如果您更新問題中的代碼,它將更具可讀性。 –