Título: [Solucionado][Duda] eliminar doble palabra incluyendo la primera en un texto... Publicado por: .:UND3R:. en 2 Enero 2012, 01:22 am Hola a todos, bueno estoy buscando la forma de poder eliminar las palabras repetidas de un .txt
buscando por Internet encontré el siguiente código que funciona casi a la perfección: Código
Si en token4.txt tiene: Código: 1 1 2 3 4 4 5 6 me queda un finish.txt de esta manera: Código: 1 2 3 4 5 6 Pero me gustaría hacerle una modificación para que borrara los dos números que se repitieron es decir que usando el mismo ejemplo anterior me devolviera: Código: 2 3 5 6 En palabras simples borrar ambas palabras o números repetidos. Espero su ayuda, muchas gracias Título: Re: [Duda] eliminar doble palabra incluyendo la primera en un texto... Publicado por: Eleкtro en 2 Enero 2012, 03:41 am ¿Es totalmente necesario hacerlo con un script?
Podrías ahorrarte mucho trabajo con el comando: Código: Uniq -U Token4.txt > Finish.txt Código: uniq --help Usage: uniq [OPTION]... [INPUT [OUTPUT]] Discard all but one of successive identical lines from INPUT (or standard input), writing to OUTPUT (or standard output). Mandatory arguments to long options are mandatory for short options too. -c, --count prefix lines by the number of occurrences -d, --repeated only print duplicate lines -D, --all-repeated[=delimit-method] print all duplicate lines delimit-method={none(default),prepend,separate} Delimiting is done with blank lines. -f, --skip-fields=N avoid comparing the first N fields -i, --ignore-case ignore differences in case when comparing -s, --skip-chars=N avoid comparing the first N characters -u, --unique only print unique lines -w, --check-chars=N compare no more than N characters in lines --help display this help and exit --version output version information and exit EDITO: http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php (http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php) Título: Re: [Duda] eliminar doble palabra incluyendo la primera en un texto... Publicado por: .:UND3R:. en 2 Enero 2012, 15:32 pm ¿Es totalmente necesario hacerlo con un script? Podrías ahorrarte mucho trabajo con el comando: Código: Uniq -U Token4.txt > Finish.txt Código: uniq --help Usage: uniq [OPTION]... [INPUT [OUTPUT]] Discard all but one of successive identical lines from INPUT (or standard input), writing to OUTPUT (or standard output). Mandatory arguments to long options are mandatory for short options too. -c, --count prefix lines by the number of occurrences -d, --repeated only print duplicate lines -D, --all-repeated[=delimit-method] print all duplicate lines delimit-method={none(default),prepend,separate} Delimiting is done with blank lines. -f, --skip-fields=N avoid comparing the first N fields -i, --ignore-case ignore differences in case when comparing -s, --skip-chars=N avoid comparing the first N characters -u, --unique only print unique lines -w, --check-chars=N compare no more than N characters in lines --help display this help and exit --version output version information and exit EDITO: http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php (http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php) No necesariamente, la idea es que de la forma que sea cumpla su objetivo, probaré el programa, muchísimas gracias :D Título: Re: [Duda] eliminar doble palabra incluyendo la primera en un texto... Publicado por: .:UND3R:. en 2 Enero 2012, 16:17 pm Hola, sabes lo probé y funciona bien pero me surge el siguiente problema:
si los números son: Código: 1 1 2 3 2 4 solo borra 1, el 2 no es borrado, creo que solo compara con la línea que está abajo Título: Re: [Duda] eliminar doble palabra incluyendo la primera en un texto... Publicado por: .:UND3R:. en 3 Enero 2012, 03:12 am Disculpa que reabra esto, pero existe alguno parecido que deje guardado la palabra repetida y que distinga entre mayúsculas y minúsculas? saludos
Título: Re: [Duda] eliminar doble palabra incluyendo la primera en un texto... Publicado por: leogtz en 3 Enero 2012, 04:51 am Esto me funciona:
Código
Código: C:\Users\leo\batch>type a.txt 1 1 2 3 4 4 5 6 C:\Users\leo\batch>type b.txt 1 1 2 3 4 4 5 6 C:\Users\leo\batch>code C:\Users\leo\batch>type final.txt 2 3 5 6 C:\Users\leo\batch> PD: Varias sentencias en una sola línea es mala ingeniería de software, no hagan lo que hice. Título: Re: [Duda] eliminar doble palabra incluyendo la primera en un texto... Publicado por: Eleкtro en 3 Enero 2012, 05:03 am EDITO: Vale acabo de ver el code de Leo xD Genial ese funciona.
Hola, sabes lo probé y funciona bien pero me surge el siguiente problema: si los números son: Código: 1 1 2 3 2 4 solo borra 1, el 2 no es borrado, creo que solo compara con la línea que está abajo Pues vaya :/ Entonces no funciona demasiado bien... Ayer probé a intentar hacer un script para ti, Conseguí con un FOR almacenar en una variable los strings repetidos y en otra sin los repetidos, de esta forma: Código: Words=;1;2;3;4;5;6 Repeated=;1;4 Pero me bloqueé en como hacer otro for para borrar los strings repetidos, de la variable "words" (Es lo que tu quieres xD) (Sin usar SED.exe), y también en como pasar toda esa cadena reemplazando el signo ; por saltos de linea para que el nuevo archivo de texto quede escrito de arriba a abajo así... Código: 2 3 5 6 ...Así que dejé de hacerlo XDDD :-( Aqui dejo el code por si alguien se anima a acabarlo o le puedes sacar algún uso :/... Saludos Código (http://img202.imageshack.us/img202/1459/prtscrcapturetb.jpg) Título: Re: [Duda] eliminar doble palabra incluyendo la primera en un texto... Publicado por: leogtz en 3 Enero 2012, 05:05 am Si ya sabes cuáles se repiten, aplicale un "find /v "...." a lo que sabes que se repite para eliminarlo del archivo original.
Código: C:\Users\leo\batch>type a.txt 1 1 2 3 4 4 5 6 C:\Users\leo\batch>type a.txt | find /v "1" | find /v "4" 2 3 5 6 C:\Users\leo\batch> Título: Re: [Duda] eliminar doble palabra incluyendo la primera en un texto... Publicado por: .:UND3R:. en 3 Enero 2012, 06:12 am Excelente, muchísimas gracias a ambos me ha servido ;-)
de verdad muchas gracias :D |