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

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

Re: [shell-script] sed não obedece primeira linha em branco


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] sed não obedece primeira linha em branco
Date: Tue, 25 Jul 2006 11:49:39 -0300

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 <address@hidden> 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 - address@hidden


---------------------------------------------------------------------
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: address@hidden
---------------------------------------------------------------------
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


reply via email to

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