Je veux sortinger le résultat de la recherche comme suit:
J’utilise:
find . -type f -print0
Le résultat est:
/mnt/sdcard/qu/led/t1/temp42.txt /mnt/sdcard/qu/led/File.plist /mnt/sdcard/qu/yellow.plist /mnt/sdcard/SHA1Keys/SHA1SUMS /mnt/sdcard/File.xml /mnt/sdcard/File.plist /mnt/sdcard/.DS_Store
Mais je veux le résultat comme:
/mnt/sdcard/.DS_Store /mnt/sdcard/File.plist /mnt/sdcard/File.xml /mnt/sdcard/SHA1Keys/SHA1SUMS /mnt/sdcard/qu/yellow.plist /mnt/sdcard/qu/led/File.plist /mnt/sdcard/qu/led/t1/temp42.txt
Et si je le fais:
find . -type f print0 | sort -r
L’ordre est tout foiré. J’ai vu cette solution quelque part:
find . -type f -ls | awk '{print $(NF-3), $(NF-2), $(NF-1), $NF}'
Mais je ne peux pas l’utiliser car il imprime les résultats.
Notez également que je n’ai pas les droits d’écriture sur le système de fichiers, donc écrire dans un fichier et inverser les lignes n’est pas une option.
Utilisez tac
( cat
arrière) pour inverser la sortie. Vous n’avez pas besoin de le sortinger dans l’ordre inverse, il vous suffit de l’inverser.
find . -type f | tac
Si vous souhaitez conserver -print0
utilisez alors:
find . -type f -print0 | tac -rs '\0'
Vous pouvez également utiliser tail -r
:
find . -type f | tail -r