Ops!
Tinha entendido errado o problema no e-mail anterior.
Segue ae uma solução:
split -p '^$' arquivo ; paste xaa <(sed '1d' xab); rm xaa xab
Em 01/04/2010, às 23:08, Kurt Kraut escreveu:
> Aloha,
>
>
> Eu e o Rodrigo Pinto bolamos a seguinte solução:
>
>
>
>
> #!/bin/dash
> input=$1
> temp
Aloha,
Eu e o Rodrigo Pinto bolamos a seguinte solução:
#!/bin/dash
input=$1
temporary1=$(mktemp)
temporary2=$(mktemp)
current_temporary=$temporary1
while read line
do
if test -z $line
then
#echo Achei uma linha em branco.
current_temporary=$temporary2
else
paste arq1 arq2
Em 01/04/2010, às 20:00, Sérgio escreveu:
> # tenho um arquivo assim:
> -8-
> joao
> maria
> helena
>
> um
> dois
> tres
> -8-
>
> como gerar uma saida assim:
> joao um
> maria dois
> helena tres
>
> Lembrando que há uma l
# tenho um arquivo assim:
-8-
joao
maria
helena
um
dois
tres
-8-
como gerar uma saida assim:
joao um
maria dois
helena tres
Lembrando que há uma linha em branco entre os dois blocos de texto
Uma outra forma de user o grep seria com o argumento -w para ele coincidir
exatamente com a paravra passada.
Mais o -x seria um equivalente tambem.
Em 1 de abril de 2010 09:38, Ernander (Nander) escreveu:
>
>
> Senhores Bom dia!
>
> Usem o grep -x
>
> como segue:
>
> nan...@tensazangetsu:~$ cat
Ah, obrigado Jimmy e Sérgio. Por enquanto, dúvida esclarecida. Vou
estudar mais sobre o sed e expressões regulares. :-)
--
Elder Marco
GNU/Linux User: #471180
"Contra o positivismo, que pára perante os fenômenos e diz: 'Há apenas
fatos', eu digo: 'Ao contrário, fatos é o que não
On Wed, Mar 31, 2010 at 11:05:20PM -0300, Elder Marco wrote:
>
>
>Em Qua, 2010-03-31 às 17:51 -0300, jimmy escreveu:
>> $ sed -r 's/[^(]+(\([^)]+\)).*/\1/' <<< "$string"
>>
>> idem, mas para colchetes:
>>
>> $ sed -r 's/[^{]+(\{[^}]+\}).*/\1/' <<< "$string"
>>
>> >
Bom dia.
Já que os dados estão separados por linha, acredito que o seguinte comando
(combinado) irá resolver o problema:
sed 's/[[:space:]+]//g' /tmp/t2 |grep -x 192.168.0.2
Explicação:
1) O sed irá remover todos os caracteres da classe posix [[:space:]]
equivalentes à ' '(caracter de espaç
Senhores Bom dia!
Usem o grep -x
como segue:
nan...@tensazangetsu:~$ cat teste
caixa
caixa1
caixa2
192.168.0.2
192.168.0.22
192.168.0.21
192.168.0.222
nan...@tensazangetsu:~$ cat teste | grep -x caixa
caixa
nan...@tensazangetsu:~$ cat teste | grep -x 192.168.0.2
192.168.0.2
nan...@tensazangetsu:
cat texto | grep -o '[(][^)]*[)]' | head -1
[(] ... usando o grupo [] pego o parêntese de abertura
[^)] .. outro grupo pega tudo menos parêntese de fechamento
* . em qualquer quantidade
[)] ... seguido por um parêntese de fechamento
com o comando head filtro a primeira ocorrên
egrep -o '^192.168.0.2$' file
Tanto faz usar 'egrep' ou 'grep -E'
eu usei os delimitadores de começo de linha '^'
e final de linha '$'. Lembre-se que os pontos casam com qualquer coisa
e portanto pode ser que você tenha que escapalos:
egrep -o '^192\.168\.0\.2$' file
--- Em shell-script@yahoo
E aí
Acho que nesse caso o que se quer é que a expressão não case para aquilo que
vier depois do dois. Ou seja, em outras palavras, que a expressão termine na
borda de palavra, representado por \b (b de boundary, fronteira) ou $, no
fim da linha.
O seguinte funcionou aqui:
$> cat doc
192.168.0.2
Bom dia...
Coloca um espaço!!
cat lista | grep -o '192.168.0.1 '
Funcionou/??
Feliz Pascoa =D
Em 1 de abril de 2010 06:29, Isaac Sampaio escreveu:
>
>
> Olá amigo Thiago, tentei usar a opção -o do grep anteriormente já, da
> seguinte forma:
>
> cat lista | grep -o '192.168.0.1'
>
> Não seu certo
Olá amigo Thiago, tentei usar a opção -o do grep anteriormente já, da seguinte
forma:
cat lista | grep -o '192.168.0.1'
Não seu certo, ele retornou 2 ocorrencias, sendo dos ips 192.168.0.1 e
192.168.0.11.
Abraços
De: Tiago Peczenyj
Para: shell-script@yahoog
14 matches
Mail list logo