shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] dúvida sed, inserção em /etc/passwd


From: Mauricio Vieira
Subject: Re: [shell-script] dúvida sed, inserção em /etc/passwd
Date: Sat, 29 Jun 2002 04:07:46 -0300
User-agent: Mutt/1.2.5i

Saudacoes,
  Cara, não funcionou nenhuma das duas.
  O \n não é reconhecido como quebra de linha e quando eu quebro a linha pra 
terminar o comando, 
  o sed dá uma msg de comando 's' não terminado:

  mvieira@vonneumann:/home$ cat /etc/aliases  | sed  's/\(^#MATRICULAS.*$\)/\1
  fadsfa:Dasfaf/'
  sed: -e expression #1, char 26: Unterminated `s' command


  Tenho 
  mvieira@vonneumann:/home$ cat /etc/aliases | grep -A4 -B4 "#MATRICULAS"
  security: root

  mailer-daemon: postmaster

  #MATRICULAS - NÃO APAGUE!!
  992007950: vieira


  # adicionado por Antonio Terceiro, em Thu Jun  6 20:35:10 BRT 2002.

  
  E cat /etc/aliases | sed  "s/\(^#MATRICULAS.*$\)/\1\n992001903:fulano/"
  
  #MATRICULAS - NÃO APAGUE!!n992001903:fulano
  992007950: vieira

  Ou seja, ele anexa no fim da frase.
  
  mvieira@vonneumann:/home$ sed --version
  GNU sed version 3.02

  Copyright (C) 1998 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
  to the extent permitted by law.


  Consultei http://verde666.org/sed/sed-HOWTO/sed-HOWTO-7.html#ss7.1

  Ainda não sei como usar hold space pra fazer isto. Tava fzendo umas 
tentativas aqui, mas 
  sempre sai algo inesperado.

  E a solução com b e t deu uma coisa estranha. ele adicionou 2 vezes, mas não 
incluiu as linhas

  mvieira@vonneumann:/home$ cat /etc/aliases  | sed -e 
'/\(^#MATRICULAS.*$\)/h;x;/\(^$\|\n\n\)/bnext;x;H;s/^$/novo:nome\n/;bfim;:next;x;/^$/h;:fim'
 | grep -A4 -B4 "#MATRICULAS"
  security: root

  mailer-daemon: postmaster

  #MATRICULAS - NÃO APAGUE!!
  992007950: vieira
  novo:nomen
  novo:nomen
  # adicionado por Antonio Terceiro, em Thu Jun  6 20:35:10 BRT 2002.


  Ou seja, ele apenas substituiu as linhas em branco 2 vezes pelo novo:nome (o 
nomen é pq não 
  entende \n como quebra de linha)


  Obrigado pela tentativa, mas ainda alguma ajuda é interessante. Obrigado.
  
Em Fri, 28 Jun 2002, Mauricio Vieira escreveu:

> Saudacoes,
>  
>   Genial, na verdade eu saberia isto. Me desculpe a preguiça mental =)
> 
> > cat aliases |sed -e 's/\(\#Aliases das matriculas\)/\1\nnovo:nome/'
> 
>   Sobre a outra  solução + complicada, vou dar uma lida pra entender o q 
> significa o /b x e H
> 
>   Valeu.
> Em Fri, 28 Jun 2002, Ulysses Almeida escreveu:
> 
> > 
> > cat aliases |sed -e '/^#Aliases das 
> > matriculas/h;x;/\(^$\|\n\n\)/bnext;x;H;s/^$/novo:nome\n/;bfim;:next;x;/^$/h;:fim'
> > 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]