dudu_ubuntun
Grato pela resposta, acabei, na verdade, utilizando parte de sua resposta em outra parte do script para resolver um outro problema de lógica que, ao ler seu post, acabei descobrindo, então, seu post foi muito mais do que útil, foi fundamental, pois ele me fez ver um erro grave que tinha deixado passar despercebido e me causaria um grande problema futuro.
É engraçado quando as vezes obtemos respostas a um problema que desconhecíamos até então
.
danpos
Eu estava pesquisando expressões regulares, mas até eu postar aqui no tópico não havia encontrado uma solução ideal, na verdade, estava cada vez indo mais longe da solução, definindo variáveis aqui e acolá, jogando a saída de um comando em outro de forma interminável, utilizando grep, cat, wc, sed, cut, sort, awk e tudo o que tenho direito e, de repente, veio a raiva pois sabia que existiria uma solução simples e curta, comecei a achar um absurdo não ter um comando que simplesmente me de esse resultado, não acreditei que depois de anos de trabalho, havia empacado em algo desse nível...
Ai, com a raiva, veio o "branco", me deu um branco, empaquei geral, nada mais dava certo, não conseguia prosseguir, digitava "echo" e saia "ecoh" e eu não via mais nem meus erros de digitação, então, parei e postei no fórum, afinal, ajuda é SEMPRE bem vinda.
A solução informada pelo dudu_ubuntun eu não testei, adaptei para resolver um outro problema, mas acredito que funciona perfeitamente, apesar de um pouco longa, mas, as vezes, um problema simples requer uma solução um tanto complexa, fazer o que.
Vou dar uma olhada nesse site que me recomendou, tenho um livro muito bom também que fala quase tudo sobre o sed.
Eu não havia testado a solução do dudu_ubuntu pois testando expressões regulares e me aprofundando nas opções do grep, cheguei a uma solução para o problema, que foi o seguinte comando:
variavel=`grep -o '[0-99]**%' arquivo.txt`
Reconheço que a uma falha no comando, mas a principio, ele me deu o resultado desejado e com esse resultado, posso jogá-lo em um novo arquivo e com o comando cut obter o resultado desejado, mas, devido a sequência de caracteres, pude jogar direto o valor na variável, OBRIGADO pela ajuda nesse ponto.
Amanhã eu "refino" essa linha de comando.
Em outra parte do script, precisei fazer algo semelhante, porém, ao invés do símbolo "%" eu tinha o caracter "G" como referência e, precisava dos 3 números antes desse caracter, porém, ele se repetia por 3 vezes no arquivo, e sempre em posições diferentes, mas eu precisava pegar os 3 números na frente do terceiro caractere "G" dentro desse arquivo e joga-lo em uma variável, ou seja, um problema semelhante ao anterior, consegui utilizando a seguinte expressão:
variavel=`cat ARQUIVO | grep -o '[0-999]***G' | tr -d "G" | sed 3q | tail -1`
Não consegui simplificar mais do que isso, mas também obtive o resultado desejado.
Obrigado pela ajuda pessoal.