Comentar linhas até certo ponto [RESOLVIDO]

1. Comentar linhas até certo ponto [RESOLVIDO]

Helder Pereira de Assunção Júnior
Helder_Jr

(usa Ubuntu)

Enviado em 31/01/2018 - 10:41h

Bom dia galera,

Estou fazendo um script para agilizar uma atividade no trabalho, porém não estou conseguindo fazer o script da forma que eu pensei, o script trata-se do seguinte:

Tenho um arquivo com x linhas de configuração, depois existe um linha em branco e logo após mais x linhas (cada bloco de configuração condiz com um servidor diferente).

Exemplo:
x1
x2
x3

x1
x2
x3

Gostaria de saber como comentar as primeiras linhas até chegar na linha em branco (quando o código detectar que a próxima linha é em branco ele para de comentar). Estou tentando fazer isso com o sed, mas nenhum dos exemplos que eu vi e nem eu pensando por si só ta servindo de algo, gostaria de uma luz de vocês rs;

Obs: As linhas de configuração não são apenas 3, e dependendo do servidor são 6,7 linhas ou mais.


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/02/2018 - 01:12h

Boa noite Helder, segue sugestão:
sed '1,/^$/ s/^/#/;s/^#$//' Arquivo  

#x1
#x2
#x3

x1
x2
x3
Pega da linha 1 até encontrar uma linha vazia e coloca "#" no início, depois tira o "#" da linha vazia...

Att.:
Marcelo Oliver

3. Re: Comentar linhas até certo ponto

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 31/01/2018 - 11:47h

Procura um termo específico e comenta as linhas até encontrar uma vazia... veja aí se serve (adapte ao seu contexto):
$ cat arquivo.txt 
x1 banana
x2 laranja
x3 limão

x1 uva
x2 pêra
x3 maçã

$ sed '/banana/,/^$/ s/^/#/' arquivo.txt
#x1 banana
#x2 laranja
#x3 limão
#
x1 uva
x2 pêra
x3 maçã

EDIT:
Se a intenção é comentar apenas o primeiro bloco de texto, então pode-se usar no SED da linha 1 até "linha vazia", assim:
sed '1,/^$/ s/^[a-zA-Z]/#/' arquivo.txt  



4. Re: Comentar linhas até certo ponto

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 31/01/2018 - 12:25h

Helder_Jr escreveu:

Bom dia galera,

Estou fazendo um script para agilizar uma atividade no trabalho, porém não estou conseguindo fazer o script da forma que eu pensei, o script trata-se do seguinte:

Tenho um arquivo com x linhas de configuração, depois existe um linha em branco e logo após mais x linhas (cada bloco de configuração condiz com um servidor diferente).

Exemplo:
x1
x2
x3

x1
x2
x3

Gostaria de saber como comentar as primeiras linhas até chegar na linha em branco (quando o código detectar que a próxima linha é em branco ele para de comentar). Estou tentando fazer isso com o sed, mas nenhum dos exemplos que eu vi e nem eu pensando por si só ta servindo de algo, gostaria de uma luz de vocês rs;

Obs: As linhas de configuração não são apenas 3, e dependendo do servidor são 6,7 linhas ou mais.


Comenta toda linha que tenha letra, logo não vai comentar as linhas em branco !!
sed '/[a-zA-Z]/s/^/#/g' 



------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



5. Re: Comentar linhas até certo ponto [RESOLVIDO]

Helder Pereira de Assunção Júnior
Helder_Jr

(usa Ubuntu)

Enviado em 29/05/2018 - 09:38h

Vlw galera, deu certo!!
Obrigado!!!!!!!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts