Como a saída de pode ls -l
ser modificada para separar campos usando guias em vez de espaços? Eu quero colar a saída em uma planilha; o preenchimento com um número variável de espaços dificulta isso. Ilustrar:
drwxr-xr-x 2 root root 4096 26 de setembro 11:43 wpa_supplicant -rw-r ----- 1 discagem raiz 66 set 26 11:43 wvdial.conf drwxr-xr-x 9 root root 4096 8 de outubro 08:21 X11 drwxr-xr-x 12 root root 4096 18 de fev 23:31 xdg drwxr-xr-x 2 root root 4096 31 de janeiro 06:11 xml drwxr-xr-x 2 root root 4096 22 de novembro 07:26 xul-ext -rw-r - r-- 1 raiz raiz 349 13 de janeiro de 2012 zsh_command_not_found
No trecho ls -l /etc
mostrado acima, as linhas 1, 2 e 3 têm um único dígito na coluna 2, enquanto a linha 4 possui dois. Isso significa que o alinhamento é alcançado usando dois espaços para separar as colunas 1 e 2 nas linhas 1-3, mas apenas um espaço na linha 4.
ls
diz , analisar bem sua saída. Esse raramente é o objetivo. Indiscutivelmente, é aqui. Eu acho que o método que você usou é muito bom (qualquer método produzirá resultados indesejados, devido a um conjunto de necessidades)! No entanto, a análise sem dúvidals
pode ser melhor. Considere o caso de um nome de arquivo que realmente tenha um caractere de tabulação.ls -l
substitui a guia por um?
caractere. Seu script preserva o caractere de tabulação, que criará colunas extras se sua saída for interpretada como delimitada por tabulação e usada para criar uma planilha. Isso degrada muito se um nome de arquivo tiver uma nova linha.