in reply to print lines which are not reverse duplicates
#!/usr/bin/perl # https://perlmonks.org/?node_id=1226286 use strict; use warnings; my %keep; while( <DATA> ) { /(\w+),(\w+),/ or next; $keep{$2, $1} and delete $keep{$2, $1} or $keep{$1, $2} = $_; } print sort values %keep; __DATA__ personA,personB,10 personA,personC,23 personA,personD,43 personB,personA,190 personE,personF,10
Or, of course, the regex version :)
#!/usr/bin/perl # https://perlmonks.org/?node_id=1226286 use strict; use warnings; local $_ = do { local $/, <DATA> }; 1 while s/^(\w+),(\w+),.*\n((?:.*\n)*?)^\2,\1,.*\n/$3/gm; print; __DATA__ personA,personB,10 personA,personC,23 personA,personD,43 personB,personA,190 personE,personF,10
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: print lines which are not reverse duplicates
by hippo (Archbishop) on Nov 26, 2018 at 09:39 UTC | |
|
Re^2: print lines which are not reverse duplicates
by Maire (Scribe) on Nov 26, 2018 at 07:59 UTC |