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

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

Re: [shell-script] sed retrovisores


From: Bruno Viana
Subject: Re: [shell-script] sed retrovisores
Date: Thu, 20 Feb 2014 09:28:23 -0800 (PST)

Valeu Julio

 


Em Quinta-feira, 20 de Fevereiro de 2014 12:56, Julio C. Neves <address@hidden> escreveu:
 
Olá Bruno,
coincidentemente olha o que acabei de escrever (tradução):
==========================================================
A única diferença entre Expressões Regulares básicas ou estendidas é o comportamento de um conjunto mínimo de caracteres:
Ponto de interrogação ? O opcional
Sinal de adição + Uma ou mais ocorrências
Parenteses () O grupo
Chaves {} O quantificador
Usando grep estendido (grep -E) ou o sed estendido (sed -r) isso não tem importância, mas caso você esteja usando um desses comandos na sua forma básica, cada um desses caracteres precisará ser escapado, senão eles serão interpretados como caracteres literais e não como Expressão Regular.
====================================================
Já a opção -i do sed serve para vc gravar em cima do próprio arquivo (mas só no GNU sed). Então, se vc quiser usar o sed estendido (opção -r) gravando no próprio arquivo (opção -i), vc deve fazer:
$ sed -ir 's/(a)(b)(c)/\3:\2:\1/'  arq.txt
ou

$ sed -i 's/\(a\)\(b\)\(c\)/\3:\2:\1/'  arq.txt

É importante e interessante citar que se vc fizer:

$ sed -ri.veio 's/(a)(b)(c)/\3:\2:\1/'  arq.txt

arq.txt será salvo com seu conteúdo original em arq.txt.veio


Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade
Local
Período
Curitiba
17-21/02
Rio de Janeiro
10-14/03
Dou treinamento de shell em qualquer cidade.
Para detalhes, entre em contato por email ou
echo 436233889341364416673541503686485725801923229706P | dc 


Em 20 de fevereiro de 2014 12:00, Bruno Viana <address@hidden> escreveu:
 
Pessoal,

Eu tenho como usar a técnica dos retrovisores do sed para alterar um arquivo direto ? tipo:

Tenho um arquivo "arq.txt" com o conteúdo:

$ cat arq.txt
abcdefg

Aí se faço :

$ sed -r 's/(a)(b)(c)/\3:\2:\1/'  arq.txt
c:b:adefg

Rola blz, porém se faço:

$ sed -i 's/(a)(b)(c)/\3:\2:\1/'  arq.txt
sed: -e expressão #1, caractere 21: referência inválida \3 no comando RHS `s'

Da o problema !!!! como faço para modificar diretamente o arquivo ?

Desde já agradeço.







reply via email to

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