perl one liners + palavra de correspondência e excluir string após o separador

0

Eu trabalho com máquinas linux / solaris e eu preciso adicionar alguma regra no meu script ksh:

Por favor, informe como combinar a palavra senha no arquivo, e exclua o valor da senha após o separador "=" com o comando perl liner

segundo, apagará apenas a primeira senha!

Por exemplo

  more file  ( before delete the password )

  Password fkwf324ei23
  Password=fkwf324ei23
  Pass_word=fevme
  Secret_Password=vrev873662j
  Password=fkwf324ei23

.

   more file ( after delete the password )

   Password fkwf324ei23
   Password=
   Pass_word=fevme
   Secret_Password=vrev873662j
   Password=fkwf324ei23
    
por schaiba 04.02.2014 / 15:23

2 respostas

1

Apenas substitua Password = no início de uma linha, seguido de qualquer coisa com a string Password= :

perl -i~ -pe 's/^Password=.*/Password=/' file

Atualizar

Para substituir apenas a primeira ocorrência, adicione um sinalizador:

perl -i~ -pe '$changed = s/^\s*Password=.*/Password=/ unless $changed;' file
    
por 04.02.2014 / 15:32
0

Como você só quer mudar a primeira ocorrência e manter o resto do arquivo, você precisa de algum estado aqui:

perl -i~ -pe 'BEGIN { $y=1 }; ($y) && (s/^Password=\K.*//) && ($y=0)' file
    
por 04.02.2014 / 16:45