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

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

Re: [shell-script] Comando sed para obter somente nome do shell sem os a


From: Alexandre Mulatinho
Subject: Re: [shell-script] Comando sed para obter somente nome do shell sem os argumentos
Date: Fri, 16 Nov 2007 13:04:36 -0200

Em 16/11/07, Info Suporte - Rodrigo Nery <address@hidden> 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] \?.*.\? //'

-- 
"KISS (Keep It Simple Stupid!), Slackware Linux." ;)
Alexandre Mulatinho <crudovisk 'at' gmail.com>
Programmer and System Administrator


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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