sed removendo string ignorando espaço. [RESOLVIDO]

13. sed removendo string ignorando espaço.

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 16/11/2021 - 23:44h

Oliver,
Se eu usar o comando puro funciona:
$Comando=`sed -i "/^${userDelete}$/d;" /home/users`;

Porém se colocar a regra pra apagar apenas da linha 15 pra baixo ai nao funciona mais e ainda troca a senha do root pra do usuario apagado finan:
$Comando=`sudo -u root awk 'NR>15 && /$userDelete/{c++;if(c=1) cmd="sed -i "/^${userDelete}$/d;\" /home/users";system(cmd);exit}' /home/users`;

Obrigado Oliver a ajuda!


  


14. sed removendo string ignorando espaço.

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 16/11/2021 - 23:50h


Oliver, eu troquei o nome, segue o arquivo users:

system
root
adm1
adm2
adm3
adm4
adm5
mail



contabilidade
escoladoceencanto
financeiro
finan


Obrigado Oliver!


15. Re: sed removendo string ignorando espaço. [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/11/2021 - 02:34h


jorgessn escreveu:

Oliver,
Se eu usar o comando puro funciona:
$Comando=`sed -i "/^${userDelete}$/d;" /home/users`;

Porém se colocar a regra pra apagar apenas da linha 15 pra baixo ai nao funciona mais,
e ainda troca a senha do root pra do usuario apagado finan:
$Comando=`sudo -u root awk 'NR>15 && /$userDelete/{c++;if(c=1) cmd="sed -i "/^${userDelete}$/d;\" /home/users";system(cmd);exit}' /home/users`;

Obrigado Oliver a ajuda!

Jorge,
o arquivo postado, contando as linhas vazias, tem 15 linhas,
Usar o comando awk que considera linha > 15,
Não tem lógica!

O "AWK" original, considera o número da linha, para endereçamento no comando "sed"
O que está tentando usar:
$Comando=`sudo -u root awk 'NR>15 && /$userDelete/{c++;if(c=1) cmd="sed -i "/^${userDelete}$/d;\" /home/users";system(cmd);exit}' /home/users`;
Usa a variável no sed para apagar a linha......,
logo, apaga tudo que casa com a var.....
---------------------------------------------------------
ainda troca a senha do root pra do usuario apagado finan:
Muito estranho trocar a senha se o comando é para apagar a linha......
______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



16. sed removendo string ignorando espaço

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 17/11/2021 - 18:08h


Boa noite Oliver,

eu vou testar direito mais tarde pra ver pq esta trocando a senha do root, talvez eu tenha digitado algo errado. Em relação as linhas é pq o arquivo original tem 20 e poucas linhas mas eu alterei pra NR>10 e o resultado é o mesmo, nao apaga o usuario finan que ta na linha 15. A noite vou testar com calma e posto aqui o resultado.

Mais uma vez agradeço muito seu empenho em me ajudar!


17. sed removendo string ignorando espaço.

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 18/11/2021 - 00:54h

Boa noite Oliver,

Nao esta trocando a senha do root, era outro problema, desculpe! No entanto ainda nao funciona se colocar do awk em diante, nao apaga a linha do usuario.
Olha como ficou Oliver:
$Comando=`sudo -u root awk 'NR>10 && /$userDelete/{c++;if(c=1) cmd="sed -i "/^${userDelete}$/d;\" /home/users";system(cmd);exit}' /home/users`;


18. Re: sed removendo string ignorando espaço. [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/11/2021 - 02:33h


jorgessn escreveu:

Boa noite Oliver,

Nao esta trocando a senha do root, era outro problema, desculpe!
No entanto ainda nao funciona se colocar do awk em diante, nao apaga a linha do usuario.
Olha como ficou Oliver:
$Comando=`sudo -u root awk 'NR>10 && /$userDelete/{c++;if(c=1) cmd="sed -i "/^${userDelete}$/d;\" /home/users";system(cmd);exit}' /home/users`;


Não entendo o motivo pelo qual quer usar o "sed" dentro do awk......
Explique claramente o que quer trocar e em quais condições......
-------------------------------------------------------------------------------------
A logica do comando:
awk 'NR>10 && /$userDelete/{c++;if(c=1) cmd="sed -i "/^${userDelete}$/d;\" /home/users
é casar Registros/linhas, acima da 10 e que tenham a var $userDelete.

______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



19. sed removendo string ignorando espaço.

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 18/11/2021 - 13:30h


Boa tarde caro Oliver,
Eu quero que o comando apague a linha do arquivo users que contem a variavel userDelete mas não altere nada no arquivo antes da linha 10, apenas depois da linha 10. Arquivo users é uma lista com apenas um usuario por linha e as 10 primeiras linhas nao pode alterar. Por exemplo, o arquivo contem 12 nomes:

system
finan
root
mail
adm1
adm2
adm3
adm4
adm5
adm6
adm7

finan
escoladoceencanto
sci
financeiro
contabil

repare que tem o usuario finan na linha 2 e depois da linha 10, a variavel contem o usuário finan mas o codigo só pode excluir após a linha 10, o finan da linha 2 nao pode ser excluido. Do jeito que esta o codigo não ta funcionando pois nao remove nenhum dos usuarios finan e eu queria que ele removesse apenas o depois da linha 10. Se eu usar o sed puro ele funciona mas ele apa o antes da linha 10 tambem.

Obrigado Oliver!


20. sed removendo string ignorando espaço.

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 06/12/2021 - 19:29h


Amigo Oliver, mais uma vez desculpe a demora, tenho trabalhado no interior no reconcavo, quase nao tem internet e muita correria, cheguei hoje em casa e vou ler e testar tudo que passou, obrigado amigo pelo seu querer de ajudar. Logo mais posto o resultado. Muito obrigado!


21. Re: sed removendo string ignorando espaço. [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 06/12/2021 - 21:09h

Passou tanto tempo que nem lembrava do tópico.....
Fico no aguardo.
Dica:
Na "construção" do comando system, o que NÃO é variável do "awk", fica entre aspas duplas.

______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



22. sed removendo string ignorando espaço.

Jorge Santos
jorgessn

(usa Ubuntu)

Enviado em 09/12/2021 - 05:17h


Deu certo!

Oliver, eu não tenho palavra pra agradecer as pessoas que gostam de ajudar! Eu agradeço pela paciencia com minha burrice, eu nunca estudei a serio programação shell e nenhuma programação, mas tenho aprendido muito com voce e sou grato a todos aqui tb. Que pessoas inteligentes assim como voce as usem pro bem também! Gratidao!


23. Re: sed removendo string ignorando espaço. [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 09/12/2021 - 16:40h

Finalmente...
Já que não tem palavras,
Um simples click resolve,
Marque a melhor resposta, rsrsrs.


______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts