Esta reseña ha sido evaluado por nuestros expertos así se asegura la exactitud de nuestra esta noticia.
Solución:
podrías usar perl
para revisar el archivo bib, guarde todos los títulos como un hash key con su línea como el valor hash, y luego recorrerlo e imprimir el título si su valor tiene múltiples entradas. Para hacerlo, cree un archivo con el siguiente contenido, por ejemplo, “finddupls.pl”, cambie el nombre del archivo bib y luego ejecute perl finddupls.pl
en tu terminal:
#!perl
my %seen = ();
my $line = 0;
open my $B, 'file.bib';
while (<$B>) {
$line++;
# remove all non-alphanumeric characters, because bibtex could have " or to encapsulate strings etc
s/[^a-zA-Z0-9 _-]//ig;
# lower-case everything to be case-insensitive
# pattern matches lines which start with title
$seenlc($1) .= "$line," if /^s*titles*(.+)$/i;
close $B;
# loop through the title and count the number of lines found
foreach my $title (keys %seen)
# count number of elements seperated by comma
my $num = $seen$title =~ tr/,//;
print "title '$title' found $num times, lines: ".$seen$title,"n" if $num > 1;
# write sorted list into file
open my $S, '>sorted_titles.txt';
print $S join("n", sort keys %seen);
close $S;
Devuelve directamente en la terminal algo como esto:
title 'observation on soil moisture of irrigation cropland by cosmic-ray probe' found 2 times, lines: 99,1350,
title 'multiscale and multivariate evaluation of water fluxes and states over european river basins' found 2 times, lines: 199,1820,
title 'calibration of a non-invasive cosmic-ray probe for wide area snow water equivalent measurement' found 2 times, lines: 5,32,
Y además escribe un archivo sorted_titles.txt
enumera todos los títulos ordenados alfabéticamente que puede revisar y detectar duplicados manualmente.
Si puedes confiar en el title
campo siendo idéntico, entonces un muy simple:
grep -n 'title =' bibliography.bib | uniq -cdf 1
Esto imprimirá solo líneas no únicas (-d
) y el número de veces que aparecen (-c
) para el archivo bibliography.bib
y el número de línea que aparecen (-n
) en el archivo de bibliografía; el -f 1
dice uniq
para ignorar el primer campo, que sería este número de línea.
Entonces, si obtienes una línea como:
2 733: title = Ethica Nicomachea,
Sabes que tienes dos apariciones de title = Ethica Nicomachea,
y el primero de ellos aparece en la línea 733 de tu .bib
Archivo.