Bom,
Eu nunca usei, mas em uma pesquisa rápida no Google Linux
(google.com/linux) pelo nome mais óbvio, txt2pdf (pois existem muitos
outros nesse estilo), encontrei esse [1].
[1]: Link: http://freshmeat.net/projects/txt2pdf/
Abraços,
Moacir Filho
2010/9/4 Eduardo Lucas :
> Pessoal
>
>
Miranda,
O que fez diferença na sua resposta anterior não foi a barra,
foram as aspas duplas.
> sed -e '1i HTXT' -e '$ a\${TRAILER}' arq.txt
> e
> sed -e '1i HTXT' -e '$ a ${TRAILER}' arq.txt
Nesses dois casos o resultado vai ser igual. No segundo sed, como
o texto está entre aspa
Hehe,
2010/8/27 eric miranda :
> Opa, eu sou o Eric Miranda, miranda é outro usuário do fórum.
>
Eu sei, é que preferi usar seu sobrenome mesmo.
> Eu sei que as aspas simples nesse caso iam gerar o mesmo result. Eu postei
> assim pq minha pergunta, no caso, era "qual a finalidade dessa
Hum...
Tem várias maneiras diferentes de fazer isso. Considere que o seu
texto está num arquivo chamado arq e veja mais essas duas:
sed 's/^[a-z]*\.//;s/\.[a-z]*$//' arq
cut -d "." -f 2- arq | rev | cut -d . -f 2- | rev (essa é
particularmente divertida)
[]'s,
Moacir Filho
2010/8/27
Eita,
2010/8/27 eric miranda :
> Não, ele precisa também colocar string do começo do arquivo.
>
> Leandro, o sed Iou o bash, eu sempre leio sobre isso e esqueço em seguida),
> tem algumas manhas com aspas simples e aspas duplas. Eu nem entendi ainda
> essa sintaxe do sed, mas com um pouco de
wc -l lala.html | cut -d ' ' -f 1 ?
2010/8/27 Leandro Valiengo Luz :
> Fala Eric,
>
> Esse comando retorna o numero de linhas mais o nome do arquivo. Eu
> quero somente o numero de linhas:
>
> => wc -l arq.txt
> 122 arq.txt
>
>
>
> -Mensagem original-
> De: shell-script@yahoogrupos
Bem,
A solução do Fernando funciona, mas só com padrão de texto, não
com arquivos. A opção para inserir o conteúdo (append) de um arquivo
no sed é o r (minúsculo). Como você precisa dos arquivos header e
trailer, o comando seria algo assim:
moacir $ sed -e '1 i \ \r' arquivo | sed -e '1
Hehe,
Tem uma maneira simples que usa só o cat (embora se possa fazer
isso com awk, sed etc): Inverter a lógica =). Arquivos:
moacir $ cat arquivo
a
r
q
u
i
v
o
moacir $ cat header
HEADER
moacir $ cat trailer
TRAILER
Para inserir o trailer, fazemos:
moacir $ cat trailer >> arqu
Alex,
Se a log que você tem é só isso que colou no e-mail anterior, o
problema não foi o sed, mas o padrão de busca. Não há nenhuma linha
que comece com 00:00:08 ou 00:00:10. Por outro lado, se você executar
como descrito a seguir, vai conseguir o resultado esperado:
/home/moacir $ cat
fsilva6,
Pode ser que eu tenha entendido errado, ou que você apenas tenha
esquecido de dizer, mas qual o parâmetro para dizer quais são as
menores datas? O usuário informa uma data e você calcula as menores
que ela? Você pega as duas menores datas (como é o caso do exemplo)?
Enfim... O s
É,
O sed no AIX é totalmente POSIX, i.e., não aceita os atalhos que
estamos acostumados a usar no Linux. A solução é essa do Fernando,
embora você possa usar o "grep -E" no AIX, se a necessidade é só
filtrar a linha do número decimal em questão. E por fim, a resposta é
não, o sed do AIX
Bom,
Não estou me preocupando com elegância (e além disso, estou
pensando "Unix", não "Linux"), então lá vai:
$ echo "Valid user = teste4 5teste teste alexandre" | sed -n
's/\(.*\)\( teste \)\(.*\)/\1 \3/p'
Valid user = teste4 5teste alexandre
Claro que no lugar do "teste" que apa
Perdão,
> Talvez você possa usar o diff mesmo e suprimir as igualdades com um
> grep -v.
Quis dizer suprimir as DESigualdades.
[]'s,
Moacir Filho
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Moacir da Cruz Souza Filho
-Analista de Sistemas: Suporte Unix
Hum...
Talvez você possa usar o diff mesmo e suprimir as igualdades com um
grep -v. Usando a opção -y para mostrar os conteúdos dos arquivos em duas
colunas, você pode remover as linhas diferentes com um grep -v "|", pois o
pipe é o caractere usado para acentuar as desigualdades entre os
Hum...
> Olha, não consegui visualizar o script que o Moacir postou,
>
É que eu deixei o script no pastebin por apenas um dia =/. Usei o site
só porque precisava que o g-mail não quebrasse a formatação do texto, mas de
qualquer forma, segue de novo a solução que eu havia pensado para o
Bom,
A solução do Julio é a definitiva, em minha opinião, mas só a
título de informação, os parênteses não precisam ser escapados, apenas
os colchetes (a.k.a. p'rentesis qu'drados, hehe) . Vejam:
$ tail -n 5 arquivo
dfg
df
[main] mux.HttpService (AbstractHttpService.java:420) - Mensagem
Mauro,
Eis uma ideia: http://pastebin.com/d6ae9429e
Abraços,
Moacir Filho
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Moacir da Cruz Souza Filho
-Analista de Sistemas: Suporte Unix Avançado
Serviço Federal de Processamento de Dados
-Mestrando em Ciências da Co
].
[1] Link: http://lawrence.ecorp.net/inet/samples/regexp-intro.php
[2] Link: http://lawrence.ecorp.net/inet/samples/regexp-format.php#cap
[]'s,
Moacir Filho
2010/1/19 Moacir Souza :
> Daniel,
>
> Parâmetros como o \U, \L, \E são bastante úteis, mas não aparecem
> no man
Daniel,
Parâmetros como o \U, \L, \E são bastante úteis, mas não aparecem
no man do sed (ao menos no meu). Para maiores detalhes, acesse info
sed e busque pela seção * The "s" Command:: `sed''s Swiss Army Knife.
[]'s,
Moacir Filho
P.S.: Mestre Julio, tem que aparecer aqui por Brasília
Daniel,
De uma porrada só, sem pensar muito (tenho que correr para o almoço
:D), eu pensei nisso:
$ cat a
Um teste Mais Legal
moacir da cruz souza filho
teste de string
$ cat a | sed -r "s/(^[a-z]| [a-z])/\U&/g"
Um Teste Mais Legal
Moacir Da Cruz Souza Filho
Teste De String
[]'s,
Moac
Pedro,
Só a expressão do grep que está incorreta. Veja a seguir que a dica de
Bruno funciona bem:
$ cat a
30
72
183
427
1298
1315
2008
2794
5825
$ cat b
22 Joao da Silva 12/2008 22/01/77
30 Zezinho das Couves 07/2004 15/09/68
427 Maria do Zé 03/2002 22/03/81
428 Jubencio da Zinha 10/20
João,
Com o cut você consegue isso fácil. Considerando que a quantidade de
campos é sempre essa que você mostrou no exemplo, o comando seria:
$ echo "teste;;;;;" | cut -d ";" -f 1-4
teste;;;
[]'s,
Moka
2010/1/13 araujo_70
>
>
> Senhores
>
> Como eu consig
Laercio,
Tem um sed que eu costumo usar bastante e que pode te ajudar
nesse caso. Veja:
Primeiro eu peguei o seu arquivo e modifiquei um pouco, para que
os dados fiquem mais úteis para fins do exemplo:
$ cat dump
00:00:01: bla bla bla...
linha1
linha2
ema...@provedor.com.br
00:00
Hum...
Não sei se foi o código de exemplo que você deu, mas eu não entendi
direito o motivo de sair depois do echo $cont, pois do jeito que está, só a
primeira iteração vai ser executada se você sair nesse ponto.
De qualquer forma, o que se usa para sair de um laço e continuar
execu
Bem,
O primeiro casaria com a expressão do sed (de 1 até o primeiro
) e todo o resto do texto, incluindo o segundo seria a saída do
comando. Veja abaixo:
$ cat teste
1
2
3
a
b
c
d
$ sed '1,/\/d' teste
a
b
c
d
[]'s,
Moacir Filho
2009/12/3 Laercio Motta
>
>
> só uma perguntinha
Ah,
Seguindo a idéia de Flávio (de usar mesmo o sed) e a minha (de remover
o que você NÃO quer), teríamos:
$ cat texto
Today is the day
Today is a good day to scripting
sun,25/12/2009
hoje é um gramde dia
Grande é com "N", e não com "M"
sun,25/12/2009
$ sed -n '// !p' texto
Today is t
Bem,
Com a opção -v do grep você também resolveria:
$ cat texto
Today is the day
Today is a good day to scripting
sun,25/12/2009
hoje é um gramde dia
Grande é com "N", e não com "M"
sun,25/12/2009
$ grep -v "" texto
Today is the day
sun,25/12/2009
hoje é um gramde dia
sun,25/12/2009
Hum...
É isso que você quer?
# cat nomes
325.jpg
326.jpg
327b.jpg
328.jpg
329b.jpg
330b.jpg
331.jpg
1254b.jpg
1255.jpg
# tr -d b < nomes
325.jpg
326.jpg
327.jpg
328.jpg
329.jpg
330.jpg
331.jpg
1254.jpg
1255.jpg
[]'s,
Moacir Filho
>
>
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Alcino,
Nesse caso você tem que ser mais criativo. Eu uso o seguinte nos
meus ambientes AIX:
$ ls -lA | sort -n -r +4 | head -n 5
Eis um exemplo:
Todos os arquivos:
$ ls -lA
total 144
-rwx--1 moacir staff 2264 Mar 14 2008 .profile
-rw---1 moacir sta
Isac,
Se você quer simplesmente não enviar a "sujeira", i.e., as
mensagens de erro lançadas pela Shell, para a tela, adicione
2>/dev/null ao final do comando que fica dentro do for. Ficaria assim
no seu caso:
for i in ./diretorio/*
do
mv "$i" ./temp/ 2>/dev/null
done
Esse redireci
Roberto,
Uma alternativa para remover os \015 (também conhecido como ^M,
CR ou \r) é o tr. Ele ajuda bastante, em especial para você que, com
eu, usa AIX. Tudo funciona muito parecido com o que o Julio
demonstrou:
tr "\r" "" < arquivo.velho > arquivo.novo
ou
tr -d "\r" < arquivo.velho
Túlio,
Eis o que acontece com o echo no Linux:
moa...@srv /home/moacir $ echo "Primeira linha\nSegunda Linha"
Primeira linha\nSegunda Linha
moa...@srv /home/moacir $ echo -e "Primeira linha\nSegunda Linha"
Primeira linha
Segunda Linha
Em algumas versões de Unix o echo não possui a
Olá Rafael,
> estou com um probleminha com o for abaixo:
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> diff=3
>
> for ((i=1; i<=$diff; i++))
> do
> cmd 1
> cmd 2
>
> funcao $a $b
> done
>
> instrucaoDepoisDoFor
> a primeira iteracao do for funciona, ele executa os comandos e e
Ou então,
Para economizar um "cat | ": cut -d \ -f1,6,7,8,9 < ss. =)
[]'s,
Moacir Filho
2008/11/27 Paulo Silvestre Schmitt <[EMAIL PROTECTED]>:
> $ cat ss | cut -d \ -f1,6,7,8,9
>
> bdacp 12:16 - down (00:31)
> bdacp 12:53 - down (00:13)
> bdacp 13:09 - down (02:34)
> reboot Nov 13 12
Anderson,
Com o while read você consegue obter todas as informações que
precisa, mas por causa da disposição das colunas, você receberá um
pequeno "extra" nas linhas que começam com reboot. Veja abaixo:
$ while read col1 lixo lixo lixo lixo col6 lixo col8 col9
> do
> echo $col1 $col6 $c
35 matches
Mail list logo