2013-10-31 42 views
1

修改標量分配打印我有一些代碼,我想用它來查找重複的排序文件。該(AWK-啓發)代碼如下所示:不能-e

perl -wnla -e 'BEGIN {$previous = -1} $F[1] == $previous ? print $F[1] : $previous = $F[1]' ../VCF/FIN_20.vcf 

不幸的是它給了我一個錯誤:

Can't modify print in scalar assignment at -e line 1, at EOF 
Execution of -e aborted due to compilation errors. 

什麼我需要做的就是它的工作?

詩篇。該文件看起來像

20 5282284 rs73594467 
20 5282299 rs148317959 
20 5282336 rs927106 

回答

6

只需加括號角落找尋的最後一個指令:

perl -wnla -e 'BEGIN {$previous = -1} $F[1] == $previous ? print $F[1] : ($previous = $F[1])' 
#                here ___^    ___^ 

沒有他們,很是喜歡:

($F[1] == $previous ? print $F[1] : $previous) = $F[1] 
+3

更重要的是,他可以用更清晰的'打印$ F [1]如果$ F [1] == $分組; $ prev = $ F [1]' – ikegami

相關問題