shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] [MODERAÇÃO]Ajuda com Saida de POWERSHELL


From: phfbettega
Subject: Re: [shell-script] [MODERAÇÃO]Ajuda com Saida de POWERSHELL
Date: Tue, 28 Nov 2017 20:38:50 -0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0

Pessoal, pensando só na escovação de bits, fiz um sedzilla que, pelo tempo que 
levei,
provavelmente seria mais rápido montar o resultado final na mão rs.

Coloquei os campos entre aspas porque o DisplayName tem uma vírgula,
acho que pode confundir a separação de campos.

Não levei em conta exceções como quebra de linha diferente de \n,
campo sem valor, etc.

sed -nr '
:a
/#+/ {
g;:b;s/\n([A-Za-z]+)[^\n]+/\1,/;tb;s/,$//p;g
:c;s/\n[^:]+: ([^\n]+)/"\1",/;tc
s/,(\n#+)?$//p;n;s/^/\n/;bd
}
H;n;ba
:d; /#+/{bc};N;bd
' <<<'Country                              : ZA
Department                           : Engineering
Description                          : Engineering Department
DisplayName                          : NOmeUser, SobrenomeUser
Division                             : LugardeTrabalho
EmailAddress                         : address@hidden
location                             : Cidade que o usuario Trabalha
personalTitle                        : Mr
SamAccountName                       : UsuarioAD
Title                                : Section Engineer: Projects
UserPrincipalName                    : address@hidden
############################################################################
Country                              : BRA
Department                           : HUMAN RESOURCES
Description                          : HUMAN RESOURCES Department
DisplayName                          : NOmeUser2, SobrenomeUser2
Division                             : LugardeTrabalho2
EmailAddress                         : address@hidden
location                             : Cidade que o usuario Trabalha
personalTitle                        : Mrs
SamAccountName                       : UsuarioAD
Title                                : Section Engineer: Projects
UserPrincipalName                    : address@hidden
############################################################################'


On 28-11-2017 19:02, Jonathan Lessa address@hidden [shell-script] wrote:
Boa tarde!

Enquanto tem pessoas que se explicam pouco, creio que o colega apenas se 
estendeu de mais em sua explicação.
Pelo que entendi ele deseja basicamente converter o conteúdo passado em um 
formado CSV usando o BASH

Imagino que se o colega houvesse omitido que foi utilizada essa ou aquela ferramenta, que realmente não cabe à lista discutir, para obter os dados, não haveria ocorrido o desentendimento.

Creio que colocar apenas os dados que deseja tratar em seu formato original, a saída desejada e o que já foi feito no shell para tentar obter essa saída ajude a lista a entender a real necessidade.

Meu pitaco sobre uma alternativa de solução:

$ cat arq

Country                              : ZA
Department                           : Engineering
Description                          : Engineering Department
DisplayName                          : NOmeUser, SobrenomeUser
Division                             : LugardeTrabalho
EmailAddress                         : address@hidden <mailto:address@hidden>
location                             : Cidade que o usuario Trabalha
personalTitle                        : Mr
SamAccountName                       : UsuarioAD
Title                                : Section Engineer: Projects
UserPrincipalName                    : address@hidden <mailto:address@hidden>
############################################################################
Country                              : BRA
Department                           : HUMAN RESOURCES
Description                          : HUMAN RESOURCES Department
DisplayName                          : NOmeUser2, SobrenomeUser2
Division                             : LugardeTrabalho2
EmailAddress                         : address@hidden <mailto:address@hidden>
location                             : Cidade que o usuario Trabalha
personalTitle                        : Mrs
SamAccountName                       : UsuarioAD
Title                                : Section Engineer: Projects
UserPrincipalName                    : address@hidden <mailto:address@hidden>
############################################################################


$ head -11 arq | sed -r "s/^([^ ]+).*$/'\1'/g" | paste -sd,; cut -d':' -f2- arq | sed -r "/^#/d;s/,/ /g;s/^ /\"'/g;s/$/'\",/g" | xargs -L11 | tr -d ' '



Em 28 de novembro de 2017 16:50, 'Ernander (Nander)' address@hidden <mailto:address@hidden> [shell-script] <address@hidden <mailto:address@hidden>> escreveu:

    __

    Gde Mestre!

    Eu so Usei a palavra Proibida pq eu recebo a Saida Abaixo. E com a Tal 
Usando o Bash queria Transformar a
    Coluna da Esquerda em Cabeçalho...
    Não pedi nenhuma Ajuda com o POWERSHELL

    Perdão pelo Mal Entendido!






    2017-11-28 17:24 GMT-02:00 'Julio C. Neves' address@hidden 
<mailto:address@hidden>
    [shell-script] <address@hidden <mailto:address@hidden>>:

        __

        Grande Itamar, gosto muito do Ernander e já troquei muito papo com ele, 
mas o dono dessa lista é o
        Eriberto e foi assim que ele a criou, adotando essa política desde o 
início, mesmo qdo a lista só
        tinha 10 inscritos.

        Se vc for ver no histórico, isso já deu muita discussão séria, muita 
moderação e diversos banimentos e
        é por isso que aqui quase não temos fora de tópico. Qdo o Eriberto foi 
servir na fronteira, sem
        internet, ele me pediu para ficar moderando e nomeei diversas pessoas 
para me ajudarem, mas a lista
        foi entrando nos eixos e a moderação diminuindo, chegando ao ponto que 
estamos.

        Isso dá muito trabalho. Para vc ter uma ideia, todo mundo que entra na 
lista está automaticamente
        moderado e isso já evitou os associados recebessem milhares de msgs de 
spam. Imagine que tenho de
        excluir essas msgs e "desmoderar" todos novos usuários qdo postam uma 
pergunta ou resposta pertinente.
        É muito trabalho, para que que a qtd de msgs não aumente com besteiras 
tipo spam que levariam as
        pessoas se "desinscrevam".

        Acho que o sucesso desta lista se deve muito a essa abordagem. Temos 
aqui diversos colegas de
        excelente qualidade técnica (onde te incluo entre os primeiros) 
contribuindo para o sucesso da lista
        e, principalmente, para aprimoramento do Shell. Se vc observar meu 
livro, tem citações a vc, Casanova,
        Tiago (PacMan) e outro que não lembro agora por estarem em edições 
anteriores. Isso significa que já
        aprendi muito com a contribuição de vcs e creio que vc tb tenha 
aprendido bastante nesta lista.

        Pois é, nunca sequer olhei o Power (ou seria Pour) Shell e nem sei se 
presta ou não, mas gostaria de
        dizer que se todos resolvessem fazer perguntas sobre python, VB, C (que 
domino bem), ... Duvido que
        tivéssemos esse time excelente temos e que tivéssemos mais de 1000 
associados. Seríamos somente uma
        lista como tantas outras.

        Bem minha opinião é essa, não sou autoridade e nem mando em nada. 
Alias, acho que já cumpri a minha
        missão, pois sou moderador há mais de 10 anos e moderação só dá 
trabalho e cria inimizades. Vou passar
        o cargo, pois ele está pagando muito pouco. ;) Quem quiser assumir p. 
favor me avise em privado.

        Abraços,
        Julio
        * Atenção! Últimos treinamentos presenciais do ano! *
        CidadeLocalPeríodo
        BrasiliaLinuxSolutions <http://bit.ly/cursoshelljulioneves>27/11-01/12
        São Paulo4Linux 
<https://www.4linux.com.br/curso/programacao-em-shell-script>05-09/12
        Rio de JaneiroLinuxSolutions 
<http://bit.ly/cursoshelljulioneves>11-15/12

        *Damos treinamento em sua empresa **com certificado*
        *e nota fiscal **por **um preço, **no mínimo, 50% mais*
        *barato que qualquer curso.*
        *
        *
        ​​
        Nosso time de instrutores /in company/ é formado somente por
        ​
        ​
        autores
        ​ ​
        ​
        de /Best Sellers
        ​ ​
        /​laureados ​sobre os temas. P. exemplo:

        Shell básico e Programação em ShellJulio Neves
        BaculaHeitor Medrado
        ZabbixAdail Host
        Produção Gráfica e VideografismoCadunico







        Em 28 de novembro de 2017 16:54, address@hidden <mailto:address@hidden> 
[shell-script]
        <address@hidden <mailto:address@hidden>> escreveu:

            __

            Grande Julio.

            Eu entendo essa ressalva com ao postagem, mas apesar de mostrar a 
saída em POWERSHELL, o Ernander
            pede ajuda para usar o Bash que está disponível no Windows 10.

            Então para todos os efeitos ele precisa  de uma ajuda para tratar o 
arquivo no BASH.

            Acredito que tenha sido sem qualquer maldade, tanto que ele se 
antecipou na mensagem original já
            pedindo desculpas, e sinceramente no meu entendimento só mostra a 
força do Shell que conhecemos
            com seus recursos adicionais e ao qual dominamos.

            Sei que pediu para não darmos uma solução, mas imagino o desespero 
que o motivou a pedir ajuda
            para esta distinta lista, e mesmo sabendo que isso pode 
descontentar a maioria, te incluindo
            Mestre Julio, prefiro ajuda-lo.

            Ernander, no Bash do WIndows 10 existe a possibilidade de usar awk?
            Se sim pode usar esse recurso:

              awk -F' *: ' 'NR<11{cab=cab (length(cab)?";":"") $1}; 
NR==12{print cab}; /#/{ print
            dados;dados=""}; {dados=dados (length(dados)?";":"") $2}' 
arquivo_com_a saida_estranha.txt

            Isso ajuda?

            []'s
            Itamar






--
Att.:
Jonathan Lessa
Licenciado em Informática


--------------------------------------------------------------------------------------------------------------
Enviado por: Jonathan Lessa <address@hidden>
--------------------------------------------------------------------------------------------------------------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]