Comment la sortie de ls -l
peut -elle être modifiée pour séparer les champs en utilisant des tabulations au lieu d'espaces? Je veux coller la sortie dans une feuille de calcul; le rembourrage avec un nombre variable d'espaces le rend difficile à faire. Pour illustrer:
racine racine de drwxr-xr-x 2 4096 26 sept. 11:43 wpa_supplicant -rw-r ----- 1 numérotation root 66 26 septembre 11:43 wvdial.conf drwxr-xr-x 9 root root 4096 8 octobre 08:21 X11 drwxr-xr-x 12 root root 4096 18 févr 23:31 xdg drwxr-xr-x 2 root root 4096 31 janvier 06:11 xml drwxr-xr-x 2 root root 4096 22 novembre 07:26 xul-ext -rw-r - r-- 1 racine root 349 13 janvier 2012 zsh_command_not_found
Dans l'extrait ls -l /etc
ci-dessus, les lignes 1, 2 et 3 ont un seul chiffre dans la colonne 2 tandis que la ligne 4 en a deux. Cela signifie que l'alignement est réalisé en utilisant deux espaces pour séparer les colonnes 1 et 2 dans les lignes 1-3, mais un seul espace dans la ligne 4.
ls
dit , l'analyse de sa sortie est correcte. C'est rarement l'objectif. On peut dire que c'est ici. Je pense que la méthode que vous avez utilisée est assez bonne (toute méthode produira des résultats indésirables compte tenu de certains besoins)! Cependant, l'analyse syntaxiquels
pourrait être meilleure. Prenons le cas d'un nom de fichier qui contient en fait un caractère de tabulation.ls -l
remplace l'onglet par un?
caractère. Votre script conserve le caractère de tabulation, qui créera des colonnes supplémentaires si sa sortie est interprétée comme délimitée par des tabulations et utilisée pour créer une feuille de calcul. Il se dégrade gravement si un nom de fichier a une nouvelle ligne.