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

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

Re: [shell-script] Re: [shell-script] Re: [shell-script] Re: Adicionar c


From: Julio C. Neves
Subject: Re: [shell-script] Re: [shell-script] Re: [shell-script] Re: Adicionar conteúdo abaixo de uma linha de arquivo
Date: Fri, 21 Jun 2019 14:26:06 -0300



Em sex, 21 de jun de 2019 12:56, Paulo address@hidden [shell-script] <address@hidden> escreveu:
 

Mestre Julio valeu a explicação, esses detalhes a gente só aprende no uso diário.

Ou lendo o código... ;)

Eu tinha uma instalação do FreeBSD mas quebrei a ponto de ficar inutilizável.

Conselho de amigo: reinstale. Além de um bom aprendizado, sem dúvida alguma, é o que há de melhor.

Abraços Paulo

Pra vc tb


On 20/06/2019 17:35, 'Julio C. Neves' address@hidden [shell-script] wrote:
> Fala Paulo,
> A sintaxe dos UNIXes precisa de uma barra invertida e o GNU sed, teoricamente tb. Suponha que depois do número
> 4 eu queira inserir um <TAB>4,5. Então:
>
> $ seq 5 | sed '4a \\t4,5'
> 1
> 2
> 3
> 4
>        4,5
> 5
> Blz! Este caso aparentemente bate com o que vc falou, mas se fizer:
> $ seq 5 | sed '4a \t4,5'
> 1
> 2
> 3
> 4
> t 4,5
> 5
>
> Neste caso a contrabarra não serviu para nada pois não foi entendida como <TAB>, para manter a compatibilidade
> com o UNIX. Ne entanto se eu quiser botar um monte de brancos antes do 4,5, olha o que vou testar:
>
> $ seq 5 | sed '4a       4,5' # Um monte de brancos antes do 4,5
> 1
> 2
> 3
> 4
> 4,5
> 5
>
> Já se eu usar uma contrabarra, que não é para escapar nada, já que o cmd está entre apóstrofos:
> $ seq 5 | sed '4a\       4,5' # Um monte de brancos antes do 4,5
> 1
> 2
> 3
> 4
>        4,5
> 5
>
> Aí sim, funciona mas o UNIX ainda não entende essa sintaxe. Fazendo o mesmo sem a contrabarra, até no GNU sed
> dá zebra, veja:
>
> $ seq 5 | sed '4a
> >             4,5'
> sed: -e expressão #1, caractere 18: Falta especificar um comando ao endereço
>
> Então, prefiro usar a sintaxe do UNIX, que acho mais elegante, de mais fácil visualização e que mantem a
> compatibilidade:
>
> $ seq 5 | sed '4a\
>             4,5'
> 1
> 2
> 3
> 4
>             4,5
> 5
>
> Abraços,
> Julio
>
> *» Não tem tempo para fazer um curso presencial?*
> *» Na sua cidade não tem nenhum bom curso de Linux?*
> *» **Conheça nosso portal educacional e estude conosco: *
> *     http://www.dicas-l.com.br/educacao <http://www..dicas-l.com.br/educacao/>*
> *Também damos treinamento em sua empresa*
> *em qualquer cidade**, **com certificado **e nota fiscal.*
> *
> *
>
>
>
> Em qui, 20 de jun de 2019 às 16:21, Paulo address@hidden <mailto:address@hidden> [shell-script]
> <address@hidden <mailto:address@hidden>> escreveu:
>
> __
>
> Depois de apanhar bastante na Vbox do FreeBSD parece que precisa de
> duas barras invertidas e a opção -e também. A quebra de linha é literal.
>
> sed -e '/end1/,/end2/{/end2/a\\
> texto' -e '}' arq
>
> Abraços Paulo
>
> On 20/06/2019 10:04, address@hidden <mailto:address@hidden> [shell-script] wrote:
> > Opa, pessoal, obrigado pela ajuda.
> >
> >
> > A solução do Fredi funcionou no meu linux mas infelizmente não rodou no meu servidor que é freebsd.
> >
> > Fredi, poderia me explicar o que você fez nesse sed.
> >
> >
> > ----------------------------------------------------------
> > Enviado por: address@hidden <mailto:address@hidden>
> > ----------------------------------------------------------
>
>
> ----------------------------------------------------------
> Enviado por: "Julio C. Neves" <address@hidden>
> ----------------------------------------------------------


reply via email to

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