eu sei que da pra fazer com um sed só... mas eu desisto...
$ egrep -o '([0-9]+bin|(user|acct)=[a-z]*|[0-9]+\))' linha | paste
-sd' ' | sed 's/[a-z]*=\|)//g;s/\(^[a-z]*\)\(.*\)/\2 \1/g'
samir 09 005004bin ifch
ifch samir vão casar com '(user|acct)=[a-z]*'
09 vai ca
Mauricy Maiorino wrote:
> Fernando funcionou mesmo, agora, por um engano meu, preciso também de
> uma parte de um campo que é a seguinte, seguindo o exemplo abaixo:
>
>samir printer1
>hpdocuprintr_ifch-I-FIL-C-HUMANAS-09-samir(acct=ifch,user=samir,copies=50,hpdocuprintr,UsLet
Mauricy Maiorino escreveu:
> Flavio, perfeito !!
>
> Agora, eu precisaria também de uma saida do tipo ( samir
> 09 005004bin ifch ), onde preciso somente do
> "09" do campo que contém este dado. Será que tem como
> fazer isto já utilizando a sua linha de comando
Parece que todos os campos sao separados por " " (espaço em branco),
voce poderia fazer:
$ cat arquivo.log | tr -s " " | tr " " "+" | awk -F+ '{ print $1 "\t"
$9 "\t" $11 }'
O que voce precisa trabalhar agora é os numeros dos $, o numero
representa o "campo" que voce quer exibir e este estara
Funcionou legal, agora, não querendo abusar, estou usando "vários" awk
para selecionar o que preciso, porém estou vendo que com o sed acho que
consigo "encurtar" o caminho.
Isto vai me ajudar muito, mas o que preciso mesmo são dos campos "BIBL"
(que pode variar o tamanho) o próprio campo con
Me tire algumas duvidas...
Os logs são sempre nesse formato?
Os campos que você precisa são sempre os mesmos?
Em que ordem você quer que esses campos apareçam?
Você vai usar isso em um script ou vai rodar em linha de comando pra
modificar o arquivo?
[]'s
Reinaldo
--- Em shell-script@yahoogru
peguei a do humberto e so modifiquei o tamanho ali dos números que aceitam
$cat teste
BIBL printer2
hppibr_[JBM05D]-BIBLIOTECA(acct=BIBL,user=BIBL,copies=2,hppibr,simplex,
landscape,usletter).PCL
printsrv
Apr 1 2006 02:48:53 Apr 1 2006 03:04:05
hppibr_[JBM05D]-BIB
Testei a solução do Humberto e não rolou aqui:
sed -n 's/^.*\([0-9]\+bin\).*/\1/p' arquivo.txt
0bin
Ai fiz essa aqui:
sed '/.* [0-9]\+bin$/!d;s/.* \([0-9]\+bin\)$/\1/' arquivo.txt
000210bin
espero que ajude
--- Em shell-script@yahoogrupos.com.br, Humberto Pereira
<[EMAIL PROTECTED]> e