O sed é orientado `linhas, logo ele faz o que vc quer, porém não
'para' na primeira linha. Pesquisei a respeito e a unica maneira q
vejo é trocar o caracter 'novalinha' por outro caracter, o que deixa a
linha de comando muito suja e suceptivel a erros.
Vc pode usar AWK
awk '/^$/{if(!foi){ printf "xxx"; foi=1} }{print}' arquivo
nesse caso, foi é uma variavel que devido a natureza interpretada do
AWK, é inicializada com zero - que para o if é um valor Falso.
convertemos em Verdadeiro com um ! e, na primera ocorrencia, trocamos
de valor. assim na primeira ocorrencia de ^$ é impresso xxx, nas
outras não cai dentro do if.
o {print} é o padrão, imprime todas as linhas
On 7/25/06, Reinaldo Carvalho <[EMAIL PROTECTED]> wrote:
> Olá amigos, a 4 dias postei na sed-br, mas não obtive sucesso, alguém
> pode me ajudar nessa? To usando isso dentro de um shell-script, apenas
> to mostrando a idéia do meu problema. O sed deveria fazer somente uma
> vez.
>
>
> $ cat arq.txt
>
> teste 09:09
>
> -- teste 09:09
>
> teste 09:09
>
> $ sed -e '/^$/ixxxx' arq.txt
> xxxx
>
> teste 09:09
> xxxx
>
> -- teste 09:09
> xxxx
>
> teste 09:09
> xxxx
>
> $ sed -e 's/^$/xxxx\n/' arq.txt
> xxxx
>
> teste 09:09
> xxxx
>
> -- teste 09:09
> xxxx
>
> teste 09:09
> xxxx
>
> $ cat arq.txt
>
> teste 09:09
>
> -- teste 09:09
>
> teste 09:09
>
>
> Porque ele não esta fazer só uma vez? Afinal, não usei /g para ser global.
> Preciso inserir uma linha somente antes da primeira linha em branco.
>
> sed --version
> GNU sed version 4.1.2
> Copyright (C) 2003 Free Software Foundation, Inc.
>
> debian sarge
> md5sum /bin/sed
> 45db1533ad0509bada6c42348912dd47 /bin/sed
>
>
> --
> Reinaldo Carvalho
> Debian Sarge 3.1 - Linux User: #238310
> Prodepa - [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>
>
--
Tiago B Peczenyj
Linux User #405772
# cd /pub
# more beer
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html