Pegar string com grep

1. Pegar string com grep

Bruna Almeida
FennFelis

(usa Ubuntu)

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.


  


2. Re: Pegar string com grep

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

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

Carlos Adean
c4rl

(usa CentOS)

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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts