Procura por texto dentro da saída do comando java

1

Eu tenho uma pasta que tem vários arquivos Jar.
    * dummy.jar
    * myjar-xx.jar
    * myjar-yy.jar

Usando o find, eu preciso encontrar o primeiro arquivo começando com "myjar"

Agora, quero ver o conteúdo do arquivo Manifest dentro do arquivo Jar encontrado usando o comando find .

Estou usando o seguinte comando para verificar o conteúdo do arquivo de manifesto.

java -jar $(find . -type f -name "myjar-*" -print | head -n 1) -ai

Dá saída no console -

Version: 2   
Name: MyName   
Company: ABC

Agora, já que no console eu posso ver o conteúdo do arquivo, como posso pesquisar se "Na" existe para a linha que contém "Name"?

    
por Novice User 24.03.2015 / 12:46

1 resposta

2

Se bem entendi, você está dizendo que este comando:

java -jar $(find . -type f -name "myjar-*" -print | head -n 1) -ai

Retorna esta saída:

Version: 2   
Name: MyName   
Company: ABC

E você deseja verificar se essa saída contém uma linha que começa com Name: e contém a string Na (excluindo o Na in Name: ). Se assim for, você poderia fazer:

java -jar $(find . -type f -name "myjar-*" -print | head -n 1) -ai |
     | grep -q '^Name:.*Na' && echo YES

O sinal -q informa grep para não imprimir suas correspondências. Ele simplesmente retorna um código de saída 0 se uma correspondência for encontrada. Portanto, você pode usar && command para executar um comando se a correspondência for bem-sucedida. Aqui, estou executando echo YES , mas você pode alterar isso para qualquer comando que queira executar.

    
por 24.03.2015 / 14:26