Como separar 2 variáveis ​​no awk print com echo?

Como separar 2 variáveis ​​no awk print com echo?

Fiz um pequeno teste para ecoar tudo no meu portal nomeado .txt. Ao escrever no terminal quero que o script faça eco de todos com o nome digitado mas mostro apenas a primeira variável.

input=$1

  for portal in $(grep $input /etc/portals | sed '/^#/ d' | awk '{print $1, $2}');

  do
    echo -e "\e[1;32m "$portal" \e[0m";
    exit 0
    done

else
    echo -e "\e[1;31m --> Wrong Input <-- \e[0m"
    exit 1
    done

fi

=============

O código funciona, mas apenas $1 é impresso e não $2. SE eu alterar o código para: awk '{print $1 $2}' então a saída será $1$2 sem tabulação ou espaçamento entre variáveis. ================================

Como posso separar as variáveis ​​​​para que o eco seja mostrado:

teste1 [tabulação/espaço] teste2

Responder1

#!/bin/bash

# exit if input is empty.
[[ -z $1 ]] && exit 1

# Check in the file /etc/portals for 
# the existens of the word "$1" and place 
# first word in "$a" and rest in "$b".
while read -r a b; do
    printf %s\\t%s\\n $a "$b" 
done < <(grep -P "^(?!#).*$1" /etc/portals)

informação relacionada