Как удалить дубликаты файлов, содержащих 2 совпадающие строки, а остальные оставить?

В этом вопросе больше внимания уделяется проблеме, связанной с операторами перенаправления.

ls >> $File 2>&1

ls stands for list contents of current directory

>> means append to end of file

$FILE means there is a variable declared as FILE having some value, could be the path to a file.

2>&1 means redirecting both stdin and sterr to the target file, in this case $FILE.
2
21.01.2019, 00:10
1 ответ

Со всеми строками в одном файле вы можете использовать этот код Perl:

perl -nle '($d,$p)=m{^(\S+?)/\S+/\??(\w+)=}; $a{"$d$p"}=$_ if "$d$p";
END {print $a{$_} for (keys %a)}' input

input— это файл данных, но вместо этого вы можете передать эту команду Perl. Работа проста. Regex сначала используется для изоляции домена и первого параметра каждой записи. Затем вся строка записывается в словарь, где ранее выделенные части являются ключом. Любое более раннее значение перезаписывается. В конце печатается хэш.

Он производит этот вывод:

test.co.uk/car/interior=chair
www.example.com/1/1/?l=spanish
example.com/car/?wheel=rim
www.example.com/1/1/?selectedTab=live&selectedStream=1
example.co.uk/car/interior=chair
test.com/food/?fruit=banana

С этого входа:

example.com/car/?wheel=tyre
example.com/car/?wheel=rim
test.com/food/?fruit=apple
test.com/food/?fruit=banana
test.co.uk/car/interior=chair
example.co.uk/car/interior=chair
www.example.com/1/1/?l=thai 
www.example.com/1/1/?l=thai
www.example.com/1/1/?l=ukrainian
www.example.com/1/1/?l=turkish
www.example.com/1/1/?selectedTab=live&selectedStream=1
www.example.com/1/1/?l=ukrainian
www.example.com/1/1/?l=turkish
www.example.com/store/?l=turkish
www.example.com/1/1/storecommon.js?v=aHpFwmVHuavD&l=dutch
www.example.com/1/1/2/0/?l=english
www.example.com/1/1/9/0/?l=english
www.example.com/1/1/?l=spanish

Существует один сбой с ?v=aHpFwmVHuavD&l=dutch, состоящим из двух параметров. Возможно, их следует разбивать и обрабатывать один за другим, что усложняет ситуацию. Убедитесь, что это не так. Также обратите внимание, что domain.comи www.domain.comне не эффективно одно и то же.

1
27.01.2020, 22:02

Теги

Похожие вопросы