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

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

Re: [shell-script] Manipulação de string


From: Fernando Mercês
Subject: Re: [shell-script] Manipulação de string
Date: Thu, 6 Oct 2011 12:43:35 -0300

Se quiser pegar um de cada vez, o cut resolve:

$ a='spf-25.dominio.net.br. 3600 IN TXT "v=spf1 ip4:XXX.XXX.XXX.0/24
ip4:YYY.YYY.YYY.0/24 exists:%{h}.%{p}.%{l}.%{i}._spf-25.dominio.net.br~all"'

$ echo $a | cut d. -f1
spf-25

$ echo $a | cut -d\" -f2
v=spf1 ip4:XXX.XXX.XXX.0/24 ip4:YYY.YYY.YYY.0/24
exists:%{h}.%{p}.%{l}.%{i}._spf-25.dominio.net.br ~all


Agora, para imprimir os dois de uma vez só, consegui com o awk:

$ echo $a | awk 'BEGIN {FS = "."}; {printf "%s ", $1}; {print substr($0,
index($0, "\""), length($0))}'
spf-25 "v=spf1 ip4:XXX.XXX.XXX.0/24 ip4:YYY.YYY.YYY.0/24
exists:%{h}.%{p}.%{l}.%{i}._spf-25.dominio.net.br ~all"

Abraços.


Att,

Fernando Mercês
Linux Registered User #432779
www.mentebinaria.com.br
softwarelivre-rj.org
@MenteBinaria
------------------------------------
Participe do I Hack'n Rio
                 hacknrio.org
------------------------------------


2011/10/6 M. Rodrigo Monteiro <address@hidden>

> **
>
>
> Caros, bom dia.
>
> Em uma parte de um script, tenho o seguinte:
>
> zona="dominio.net.br"
> # egrep ^"[0-9A-Za-z-]*\.${zona}\." "${arquivoDump}" | grep -v -f
> /tmp/importaSubDominio5035 | grep 'TXT'
>
> spf-25.dominio.net.br. 3600 IN TXT "v=spf1
> ip4:XXX.XXX.XXX.0/24 ip4:YYY.YYY.YYY.0/24
> exists:%{h}.%{p}.%{l}.%{i}._spf-25.dominio.net.br ~all"
> spf-99.dominio.net.br. 3600 IN TXT "v=spf1
> ip4:XXX.XXX.XXX.0/24 ip4:YYY.YYY.YYY.0/24
> exists:%{h}.%{p}.%{l}.%{i}._spf-99.dominio.net.br ~all"
>
> Eu queria nesse one-liner pegar somente a primeira parte do primeiro
> registro (spf-25) e o último registro (v=spf1 ip4:XXX.XXX.XXX.0/24
> ip4:YYY.YYY.YYY.0/24 exists:%{h}.%{p}.%{l}.%{i}._spf-25.dominio.net.br
> ~all).
> Com awk '{print $1,$NF}' não funciona porquê o último registro o
> separador de campo é aspas duplas...
>
> O resultado desejado é, por linha:
>
> Primeiro resultado
> host="spf-25"
> registro="v=spf1 ip4:XXX.XXX.XXX.0/24 ip4:YYY.YYY.YYY.0/24
> exists:%{h}.%{p}.%{l}.%{i}._spf-25.dominio.net.br ~all"
>
> Segundo resultado
> host="spf-99"
> registro="v=spf1 ip4:XXX.XXX.XXX.0/24 ip4:YYY.YYY.YYY.0/24
> exists:%{h}.%{p}.%{l}.%{i}._spf-99.dominio.net.br ~all"
>
> Alguém tem uma luz?
> Espero que tenha conseguido explicar...
>
> Abraços,
> Rodrigo.
>
> M. Rodrigo Monteiro
>
> "Free as in Freedom, not free as in free beer"
> "As we are liberated from our own fear, our presence automatically
> liberates others"
> Linux User # 403730
>
> Pense antes de imprimir. Think before printing.
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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