1

ソートされたファイルで重複を見つけるために使用したいコードがあります。(awk にインスパイアされた) コードは次のようになります。

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.

機能させるにはどうすればよいですか?

Ps。ファイルは次のようになります

20  5282284 rs73594467
20  5282299 rs148317959
20  5282336 rs927106
4

1 に答える 1

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]
于 2013-10-31T08:21:30.943 に答える