Come si può modificare l'output di ls -l
separare i campi utilizzando le schede anziché gli spazi? Voglio incollare l'output in un foglio di calcolo; l'imbottitura con un numero variabile di spazi rende difficile farlo. Illustrare:
drwxr-xr-x 2 root root 4096 26 set 11:43 wpa_supplicant -rw-r ----- 1 root dialout 66 26 set 11:43 wvdial.conf drwxr-xr-x 9 radice radice 4096 8 ottobre 08:21 X11 drwxr-xr-x 12 radice radice 4096 18 febbraio 23:31 xdg drwxr-xr-x 2 radice radice 4096 31 gennaio 06:11 xml drwxr-xr-x 2 radice radice 4096 22 nov 07:26 xul-ext -rw-r - r-- 1 root root 349 13 gennaio 2012 zsh_command_not_found
Nell'estratto ls -l /etc
mostrato sopra, le righe 1, 2 e 3 hanno una singola cifra nella colonna 2 mentre la riga 4 ne ha due. Ciò significa che l'allineamento si ottiene utilizzando due spazi per separare le colonne 1 e 2 nelle righe 1-3, ma solo uno spazio nella riga 4.
ls
dice , analizzarne l'output va bene. Questo è raramente l'obiettivo. Probabilmente è qui. Penso che il metodo che hai usato sia abbastanza buono (qualsiasi metodo produrrà risultati indesiderati data una serie di esigenze)! Tuttavia, probabilmente l'analisils
potrebbe essere migliore. Considera il caso di un nome file che contiene effettivamente un carattere di tabulazione.ls -l
sostituisce la scheda con un?
carattere. Lo script conserva il carattere di tabulazione, che creerà colonne aggiuntive se il suo output viene interpretato come delimitato da tabulazioni e utilizzato per creare un foglio di calcolo. Si degrada gravemente se un nome di file ha una nuova riga.