Olá,

fiz uma pequena função para que os dados sejam exibidos corretamente
em uma lista com tamanho de campo variável. O primeiro argumento é
quantos TABs este campo deve ocupar na linha, o restante é considerado
como o conteudo.

tab () {
        local tabs="$1"
        shift
        local lenght="$@"
        lenght=${#lenght}
        # Numero de tabs que a informacao esta contida.
        local ntab=$(( ( $lenght - 1 ) / 8 ))
        # Adicione TAB ate o numero de tabs que ela deveria estar contida.
        local tab
        while test "$ntab" -le "$tabs" ; do
                tab="$tab       "
                let ntab++
        done
        echo "[EMAIL PROTECTED]"
}

Exemplo de uso:

echo "Login: $(tab 1 ${line%%:*})Nome: $(tab 3 $(echo $line | cut -f5
-d:|cut -f1 -d,)) CPF: ${line##*:}"

neste exemplo o campo login deve estar contido em 2 tabs (ou seja, se
tiver até 7 digitos, será acrescentado 2 tabs, se tiver até 15 digitos
será acrescentando 1 tab) e o campo nome que deve estar contido em 3
tabs)

Com isso a linha fica tabulada corretamente.

Gostaria de contribuições para melhorar o código, de repente estou
refazendo a roda.



-- 
Reinaldo Carvalho
Debian Sarge 3.1 - Linux User: #238310
Prodepa - [EMAIL PROTECTED]

Responder a