¿Cómo separar 2 variables en awk print con echo?

¿Cómo separar 2 variables en awk print con echo?

Hice una pequeña prueba para hacer eco de todo en mi portal con nombre .txt. Al escribir en la terminal, quiero que el script haga eco de todo con el nombre ingresado, pero solo muestro la primera variable.

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

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

El código funciona pero solo se imprime $1 y no $2. SI cambio el código a: awk '{print $1 $2}' entonces el resultado es $1$2 sin tabulación ni espacio entre variables. ===================================

¿Cómo puedo separar las variables para que se muestre el eco?

prueba1 [tabulación/espacio] prueba2

Respuesta1

#!/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)

información relacionada