Может быть, что-то вроде:
perl -F'[|]' -lane '
for (@F) {
# trim the fields to remove leading and trailing blanks
s/^\s+//; s/\s+$//
}
# re-join the trimmed fields into $a
my $a = join "|", @F[0..3];
# same, inverting the two pairs into $b
my $b = join "|", @F[2,3,0,1];
# print unless either $a or $b has been seen before
print unless $seen{$a} || $seen{$b}++' < your-file
Чтобы обобщить любое количество пар, найденных в любом порядке, вам нужно отсортировать эти пары, чтобы сделать ключ ассоциативного массива %seen
:
perl -F'[|]' -lane '
for (@F) {
# trim the fields to remove leading and trailing blanks
s/^\s+//; s/\s+$//
}
my @pairs;
while (my ($a, $b) = splice(@F, 0, 2)) {
push @pairs, "$a|$b"
}
my $key = join "|", sort @pairs;
print unless $seen{$key}++' < your-file
Поскольку вы затронули только сеансы X -, вам крупно повезло, и вы можете использовать интерфейс командной строки, чтобы исправить это.
Если вы получаете доступ к своему Pi локально (, то есть с его собственной клавиатурой и монитором ), используйте ctrl + alt + F1 , чтобы перейти к приглашение для входа.
Если вы делаете это удаленно и еще не активировали ssh
, удалите SD-карту -и поместите пустой файл с именем ssh
в загрузочный раздел вашей SD. Затем запустите Pi и используйте (с ПК с Linux)ssh pi@<ip of pi>
для входа в систему. (Используйте Putty
, если вы хотите использовать ssh
с ПК с Windows ).
После входа в среду командной строки отмените изменения и перезапустите Pi.