Extrai uma linha se o primeiro campo contiver um ponto

2

Os dados reais são:

Dolibarr                      techpubl        http://techpublications.org/erp
tekstilworks.com              WordPress       tekstilw
wbq.dandydesigns.co         WordPress       cbeqte
WordPress                     cbeqte          http://wbq.dandydesigns.co
WordPress                     cbeqte          http://qbd.dandydesigns.co
WordPress                     cbeqte          http://uqdq.dandydesigns.co
dandydesigns.co               WordPress     cbeqte
stunlockers.info              WordPress         nmmuop

O que eu quero receber:

 tekstilworks.com              WordPress       tekstilw
 wbq.dandydesigns.co         WordPress       cbeqte
 dandydesigns.co               WordPress     cbeqte
 stunlockers.info              WordPress         nmmuop
    
por blaCkninJa 03.06.2016 / 22:17

3 respostas

8

Usando o awk:

awk '$1 ~ /\./' input-file-here

O período na expressão awk deve ser escapado com uma barra invertida para que não seja tratado como uma sintaxe de expressão regular.

    
por 03.06.2016 / 22:22
5

Usando grep para corresponder a . no primeiro campo:

grep '^[^[:blank:]]*\.' file.txt

Exemplo:

$ cat file.txt
Dolibarr                      techpubl        http://techpublications.org/erp
tekstilworks.com              WordPress       tekstilw
wbq.dandydesigns.co         WordPress       cbeqte
WordPress                     cbeqte          http://wbq.dandydesigns.co
WordPress                     cbeqte          http://qbd.dandydesigns.co
WordPress                     cbeqte          http://uqdq.dandydesigns.co
dandydesigns.co               WordPress     cbeqte
stunlockers.info              WordPress         nmmuop

$ grep '^[^[:blank:]]*\.' file.txt
tekstilworks.com              WordPress       tekstilw
wbq.dandydesigns.co         WordPress       cbeqte
dandydesigns.co               WordPress     cbeqte
stunlockers.info              WordPress         nmmuop
    
por 03.06.2016 / 22:21
1

apenas por diversão, bash

(set -f; while IFS= read -r line; do set -- $line; [[ $1 == *.* ]] && echo "$line"; done) <filename
    
por 03.06.2016 / 22:55