Pular para o conteúdo

Pegar string com grep

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Pegar string com grep

Enviado em 14/11/2014 - 17:43h

Olá, tenho uma dúvida meio simples, tenho um arquivo teste.txt com várias linhas, cada linha tem o seguinte formato:

[quote]12.06 603 459 S 28450 ColunaDeInteresse[\quote]

Ou seja, as 3 primeiras colunas são inteiros, a quarta coluna é um char, a quinta inteiro e a ultima coluna (ColunaDeInteresse) é uma string que começa com letras maiusculas [A-Z], [b]contem espaços[\b], e termina com letras alfanuméricos minúsculos.

Quero pegar toda coluna 6 (ColunaDeInteresse) no qual a quarta coluna seja o character 'S' utilizando o comando grep.

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Pegar string com grep

Enviado em 15/11/2014 - 09:44h

[/b]
Como é a coluna ?

Assim :

aaaaaaa
bbbbbbb
ccccccc

Ou

abc
abc
abc
abc
abc
abc
abc

Eu utilizaria primeiramente o awk com o print dele e depois utilizaria o grep , veja um exemplo:

Digite
mount 

Depois digite
mount | awk '{print $1}' 

E veja com o grep:
mount | awk '{print $1}' | grep /dev/ 


Espero lhe ter ajudado

Qualquer coisa só postar aqui

[]'s

T+

3. Re: Pegar string com grep

Enviado em 15/11/2014 - 12:43h

FennFelis escreveu:

Olá, tenho uma dúvida meio simples, tenho um arquivo teste.txt com várias linhas, cada linha tem o seguinte formato:

12.06 603 459 S 28450 ColunaDeInteresse

Ou seja, as 3 primeiras colunas são inteiros, a quarta coluna é um char, a quinta inteiro e a ultima coluna (ColunaDeInteresse) é uma string que começa com letras maiusculas A-Z, contem espaços, e termina com letras alfanuméricos minúsculos.

Quero pegar toda coluna 6 (ColunaDeInteresse) no qual a quarta coluna seja o character 'S' utilizando o comando grep.



Necessariamente tem que usar o grep e não pode pegar a coluna 6 de outra maneira? Veja meu exemplo abaixo.

Criei um arquivo chamado texto.txt seguindo o teu exemplo, para diferenciar as linhas alterei os valores das colunas 1 e 4.

1.06 603 459 S 28450 ColunaDeInteresse
1.07 603 459 S 28450 ColunaDeInteresse
1.08 603 459 S 28450 ColunaDeInteresse
1.09 603 459 B 28450 ColunaDeInteresse
1.10 603 459 S 28450 ColunaDeInteresse
1.11 603 459 A 28450 ColunaDeInteresse
1.12 603 459 4 28450 ColunaDeInteresse
1.13 603 459 C 28450 ColunaDeInteresse
1.14 603 459 S 28450 ColunaDeInteresse



c4rl@zyon:~$ awk '{ if ($4 == "S") print $1 " " $6}' < texto.txt
1.06 ColunaDeInteresse
1.07 ColunaDeInteresse
1.08 ColunaDeInteresse
1.10 ColunaDeInteresse
1.14 ColunaDeInteresse

c4rl@zyon:~$ awk '{ if ($4 == "A") print $1 " " $6}' < texto.txt
1.11 ColunaDeInteresse



Para imprimir apenas a coluna 6 basta colcoar print $6 onde está print $1 " " $6

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder