tagger tag picard musicbrainz mp3tag mac kid3 editar easytag linux sorting unique uniq

linux - tag - Encuentra líneas únicas



tag editor linux (7)

Esta fue la primera vez que lo intenté

skilla:~# uniq -u all.sorted 76679787 76679787 76794979 76794979 76869286 76869286 ......

Después de hacer un cat -e all.sorted

skilla:~# cat -e all.sorted $ 76679787$ 76679787 $ 76701427$ 76701427$ 76794979$ 76794979 $ 76869286$ 76869286 $

Cada segunda línea tiene un espacio final :( ¡Después de eliminar todos los espacios finales funcionó!

gracias

¿Cómo puedo encontrar las líneas únicas y eliminar todos los duplicados de un archivo? Mi archivo de entrada es

1 1 2 3 5 5 7 7

Me gustaría que el resultado sea:

2 3

sort file | uniq sort file | uniq no hará el trabajo. Mostrará todos los valores 1 vez


Use de la siguiente manera:

sort < filea | uniq > fileb


uniq -u me ha estado volviendo loco porque no funcionó.

Entonces, en lugar de eso, si tiene Python (la mayoría de las distribuciones y servidores de Linux ya lo tienen):

Suponiendo que tiene el archivo de datos en notUnique.txt

#Python #Assuming file has data on different lines #Otherwise fix split() accordingly. uniqueData = [] fileData = open(''notUnique.txt'').read().split(''/n'') for i in fileData: if i.strip()!='''': uniqueData.append(i) print uniqueData ###Another option (less keystrokes): set(open(''notUnique.txt'').read().split(''/n''))

Tenga en cuenta que debido a líneas vacías, el conjunto final puede contener cadenas '''' o solo espacio. Puedes eliminar eso más tarde. O simplemente salirse con la copia de la terminal;)

#

Solo para tu información, en la página Man de uniq:

"Nota: ''uniq'' no detecta líneas repetidas a menos que sean adyacentes. Puede ordenar la entrada primero, o usar ''sort -u'' sin ''uniq''. Además, las comparaciones respetan las reglas especificadas por ''LC_COLLATE''."

Una de las formas correctas para invocar con: # sort nonUnique.txt | uniq

Ejecución de ejemplo:

$ cat x 3 1 2 2 2 3 1 3 $ uniq x 3 1 2 3 1 3 $ uniq -u x 3 1 3 1 3 $ sort x | uniq 1 2 3

Los espacios pueden ser impresos, ¡así que prepárate!


uniq -u < file hará el trabajo.


uniq debería funcionar bien si su archivo es / puede ser ordenado, si no puede ordenar el archivo por alguna razón puede usar awk :

awk ''{a[$0]++}END{for(i in a)if(a[i]<2)print i}''


uniq tiene la opción que necesita:

-u, --unique only print unique lines

$ cat file.txt 1 1 2 3 5 5 7 7 $ uniq -u file.txt 2 3


sort -d "file name" | uniq -u

esto funcionó para mí por uno similar. Use esto si no está arreglado. Puede eliminar la ordenación si está organizada