|
From: | Humberto Pereira |
Subject: | Re: [shell-script] refernciar caractere |
Date: | Fri, 15 Sep 2006 17:26:13 -0300 |
User-agent: | Opera Mail/9.01 (Linux) |
Existe algum modo de referenciar a posicao (linha, coluna) de um determinado caractere dentro de um arquivo de texto? Como eu poderia referenciar a posicao do * (asterisco) para que, de maneira automatizada, seja possivel alterar para .(ponto) ???
Ola,com sed eh facil. Voce referencia a linha naturalmente. Basta colocar o numero da linhas no comeco da expressao. Para referenciar a coluna voce usa o . (qquer caracter) + {} (repeticao). Ae basta pegar todos os carateres ate a coluna e substituir pelo caracter q vc quer. Veja:
Vou trocar o caracter da posicao 2,3 (caracter 2) pelo 0. [begnini@coke tmp]$ cat a.txt 1 2 3 2 2 3 3 2 3 [begnini@coke tmp]$ sed -r '2s/^(.{2})./\10/' a.txt 1 2 3 2 0 3 3 2 3 [begnini@coke tmp]$ No seu caso ficaria: sed -r -i '15s/^(.{16}.)./\1./' arquivoNote q o primeiro numero (15) eh a linha e o segundo (16) eh a posicao do caracter - 1. A opcao -i do sed modifica diretamente o arquivo.
[]s Humberto Pereira -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
[Prev in Thread] | Current Thread | [Next in Thread] |