14 exemples útils de l'ordre d'ordenació de Linux - Part 1
Sort és un programa Linux que s'utilitza per imprimir línies de fitxers de text d'entrada i concatenar tots els fitxers en ordre ordenat. L'ordre d'ordenació ocupa un espai en blanc com a separador de camps i el fitxer d'entrada sencer com a clau d'ordenació. És important tenir en compte que l'ordre d'ordenació no ordena els fitxers, sinó que només imprimeix la sortida ordenada, fins que redirigeu la sortida.
Aquest article té com a objectiu una visió profunda de l'ordre ordenar de Linux amb 14 exemples pràctics útils que us mostraran com utilitzar l'ordre d'ordenació a Linux.
1. Primer crearem un fitxer de text (tecmint.txt) per executar exemples d'ordres ordenar. El nostre directori de treball és '/home/$USER/Desktop/tecmint.
L'opció -e de l'ordre següent permet la interpretació de la barra invertida i/n diu a echo que escrigui cada cadena en una línia nova.
$ echo -e "computer\nmouse\nLAPTOP\ndata\nRedHat\nlaptop\ndebian\nlaptop" > tecmint.txt
2. Abans de començar amb ordenar, fem una ullada al contingut del fitxer i la seva aparença.
$ cat tecmint.txt
3. Ara ordena el contingut del fitxer utilitzant la següent comanda.
$ sort tecmint.txt
Nota: l'ordre anterior en realitat no ordena el contingut del fitxer de text, sinó que només mostra la sortida ordenada al terminal.
4. Ordena el contingut del fitxer 'tecmint.txt' i escriu-lo en un fitxer anomenat (sorted.txt) i verifica el contingut mitjançant l'ordre cat.
$ sort tecmint.txt > sorted.txt $ cat sorted.txt
5. Ara ordena el contingut del fitxer de text tecmint.txt en ordre invers mitjançant l'interruptor -r i redirigeix la sortida a un fitxer reversesorted.txt. Comproveu també la llista de contingut del fitxer creat recentment.
$ sort -r tecmint.txt > reversesorted.txt $ cat reversesorted.txt
6. Anem a crear un fitxer nou (lsl.txt) a la mateixa ubicació per obtenir exemples detallats i l'omplirem amb la sortida de 'ls -l' per al vostre directori d'inici.
$ ls -l /home/$USER > /home/$USER/Desktop/tecmint/lsl.txt $ cat lsl.txt
Ara veurem exemples per ordenar el contingut en funció d'un altre camp i no dels caràcters inicials predeterminats.
7. Ordena el contingut del fitxer 'lsl.txt' sobre la base de la segona columna (que representa el nombre d'enllaços simbòlics).
$ sort -nk2 lsl.txt
Nota: L'opció '-n' de l'exemple anterior ordena el contingut numèricament. L'opció '-n' s'ha d'utilitzar quan volem ordenar un fitxer a partir d'una columna que contingui valors numèrics.
8. Ordena el contingut del fitxer 'lsl.txt' a partir de la 9a columna (que és el nom dels fitxers i carpetes i no és numèric).
$ sort -k9 lsl.txt
9. No sempre és essencial executar l'ordre d'ordenació en un fitxer. Podem canalitzar-lo directament al terminal amb una comanda real.
$ ls -l /home/$USER | sort -nk5
10. Ordena i elimina els duplicats del fitxer de text tecmint.txt. Comproveu si el duplicat s'ha eliminat o no.
$ cat tecmint.txt $ sort -u tecmint.txt
Normes fins ara (el que hem observat):
- Les línies que comencen amb números són preferides a la llista i es troben a la part superior fins que s'especifiqui el contrari (-r).
- Les línies que comencen amb lletres minúscules són preferides a la llista i es troben a la part superior fins que s'especifiqui el contrari (-r).
- Els continguts s'enumeren en funció de l'aparició d'alfabets al diccionari fins que s'especifiqui el contrari (-r).
- L'ordre d'ordenació per defecte tracta cada línia com a cadena i després ordena-la en funció de l'aparició d'alfabets al diccionari (preferint numèrics; vegeu la regla – 1) fins que s'especifiqui el contrari.
11. Creeu un tercer fitxer 'lsla.txt' a la ubicació actual i ompliu-lo amb la sortida de l'ordre 'ls -lA'.
$ ls -lA /home/$USER > /home/$USER/Desktop/tecmint/lsla.txt $ cat lsla.txt
Els que entenguin l'ordre ls saben que ls -lA = ls -l + fitxers ocults. Així que la majoria del contingut d'aquests dos fitxers seria el mateix.
12. Ordena el contingut de dos fitxers en una sortida estàndard d'una vegada.
$ sort lsl.txt lsla.txt
Observeu la repetició d'arxius i carpetes.
13. Ara podem veure com ordenar, combinar i eliminar duplicats d'aquests dos fitxers.
$ sort -u lsl.txt lsla.txt
Tingueu en compte que els duplicats s'han omès de la sortida. A més, podeu escriure la sortida en un fitxer nou redirigint la sortida a un fitxer.
14. També podem ordenar el contingut d'un fitxer o la sortida en funció de més d'una columna. Ordena la sortida de l'ordre 'ls -l' en funció del camp 2,5 (numèric) i 9 (no numèric).
$ ls -l /home/$USER | sort -t "," -nk2,5 -k9
Això és tot per ara. Al següent article us explicarem alguns exemples més d'ordre ordenar en detall. Fins aleshores estigueu atents i connectats a Tecmint. Continua compartint. Continua comentant. Fes m'agrada i comparteix-nos i ajuda'ns a difondre'ns.
Llegiu també: 7 exemples interessants d'ordres ordenar de Linux - Part 2