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: Julio C. Neves
Subject: Re: [shell-script] sed retrovisores
Date: Thu, 20 Feb 2014 12:36:27 -0300

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

SoftSell

17-21/02

Rio de Janeiro

EDX

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]