Ok, desculpe... Tem que ser em SED... Não sou bom em SED mas deu para 
fazer isso:

[EMAIL PROTECTED] mod]$ cat teste.txt
root 28051 1 0 15:11:59 ? 0:00 sh /util/shell/suporte_001.sh arg01 arg02
root 28051 1 0 Nov 16 ? 0:00 sh /util/shell/suporte_001.sh arg01 arg02
root 28051 1 0 Nov 16 tty1 0:00 sh /util/shell/suporte_001.sh arg01 arg02
[EMAIL PROTECTED] mod]$ cat teste.txt | sed -e 's|^.* /|/|' -e 's/ .*$//'
/util/shell/suporte_001.sh
/util/shell/suporte_001.sh
/util/shell/suporte_001.sh

Geison Farias
Recife - PE


Info Suporte - Rodrigo Nery escreveu:
> A coluna TTY também pode ser variável:
>
>
> root 28051 1 0 15:11:59 ? 0:00 sh /util/shell/suporte_001.sh arg01 arg02
>
> root 28051 1 0 Nov 16 tty1 0:00 sh /util/shell/suporte_001.sh arg01 arg02
>
> Preciso que o "sed" obtenha o que está entre a primeira "/" e o próximo
> espaço em branco (ou final da linha, se não houver argumentos). 
>
> Obrigado,
>
> Rodrigo
>
>
> -----Mensagem original-----
> De: Geison Farias [mailto:[EMAIL PROTECTED]
> Enviada em: sexta-feira, 16 de novembro de 2007 13:00
> Para: [email protected]
> Assunto: Re: RES: [shell-script] Comando sed para obter somente nome do
> shell sem os argumentos
>
>
>
> As vezes, tá mais simples... no exemplo dado...
>
> [EMAIL PROTECTED] mod]$ cat teste.txt | cut -f2 -d"?" | cut -f4 -d" "
> /util/shell/suporte_001.sh
> /util/shell/suporte_001.sh
>
> Geison Farias
> Recife - PE
>
>
> Info Suporte - Rodrigo Nery escreveu:
>   
>> Olá Alexandre, obrigado pela resposta, mas a posição pode ser variável,
>>     
> nem
>   
>> sempre será a 9ª coluna, pois o campo correspondente à data pode mudar,
>> veja:
>>
>> root 28051 1 0 15:11:59 ? 0:00 sh /util/shell/suporte_001.sh arg01 arg02
>>
>> root 28051 1 0 Nov 16 ? 0:00 sh /util/shell/suporte_001.sh arg01 arg02
>>
>>
>> Desta forma o nome do processo passa para o 10º campo.
>> Eu já havia pensado no awk, porém o nome do shell não tem posição
>>     
> definida,
>   
>> pode ser tanto na 9ª quanto na 10ª posição.
>>
>> Rodrigo
>>
>>
>> -----Mensagem original-----
>> De: Alexandre Mulatinho [mailto:[EMAIL PROTECTED]
>> Enviada em: sexta-feira, 16 de novembro de 2007 12:05
>> Para: [email protected]
>> Cc: Info Suporte - Rodrigo Nery
>> Assunto: Re: [shell-script] Comando sed para obter somente nome do shell
>>     
> sem
>   
>> os argumentos
>>
>>
>>
>>
>>
>> Em 16/11/07, Info Suporte - Rodrigo Nery <[EMAIL PROTECTED]>
>>     
> escreveu:
>   
>> Olá pessoal,
>>
>> Estou montando uma expressão regular, porém a mesma não está
>> funcionando a contento. Vejam os exemplos abaixo da saída do comando "ps":
>>
>> root 28051 1 0 15:11:59 ? 0:00 sh
>> /util/shell/suporte_001.sh arg01 arg02
>> user1 6075 6074 0 11:01:00 ? 0:00 /usr/bin/sh
>> /util/shell/suporte_002.sh
>> user2 6075 6074 0 11:01:00 ? 0:00 /bin/sh
>> /util/shell/suporte_003.sh 001 002 003
>>
>> Preciso obter o nome do shell que está rodando, para isso tenho
>> direciono o comando "ps -ef | grep <nome do shell> | grep -v grep" para um
>> arquivo temporário e executo os comandos "sed" abaixo:
>>
>> cat /tmp/temp01 | sed 's;^.* \(/.*\) [A-Za-z0-9].*$;\1;g' | sed
>> 's;^.* \(/.*\)$;\1;g'
>>
>> A saída é:
>>
>> /util/shell/suporte_001.sh arg01
>> /util/shell/suporte_002.sh
>> /util/shell/suporte_003.sh 001 002
>>
>> E deveria ser:
>>
>> /util/shell/suporte_001.sh
>> /util/shell/suporte_002.sh
>> /util/shell/suporte_003.sh
>>
>> O que posso fazer para obter a saída desejada (somente o nome do
>> shell, eliminando todos os argumentos, se houver)?
>>
>> Obrigado a todos!
>> Rodrigo
>>
>>  
>>
>> Fala Rodrigo,
>>
>> Você pode tentar utilizar o AWK pra isso, ele tem uma boa forma de
>>     
> delimitar
>   
>> campos e reduziria o código em apenas uma linha, você precisa pegar todas
>>     
> as
>   
>> entradas que tiverem como 6o argumento uma palavra que contenha 'suporte':
>>     
>
>   
>> $ ps ax | grep suport | awk '{ print $6; }'
>> /util/shell/suporte_001.sh
>> /util/shell/suporte_002.sh
>> /util/shell/suporte_003.sh
>>
>> com o SED:
>> $ ps ax | grep sh | sed -e 's/.*\?[0-9]:[0-9][0-9] \?.*.\? //' 
>>
>>   
>>     
>
>
>
> ---------------------------------------------------------------------
> 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
>
>  
>
>
> ---------------------------------------------------------------------
> 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
>
>  
>
>
>   

Responder a