Как отделиться, 2 переменные в awk печатают с эхом?

Я сделал маленький тест для повторения всего в моем .txt, названном порталом. При записи в терминале я хочу, чтобы сценарий повторил все с введенным именем, но я только показываю первую переменную.

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

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

Работы кода, но только 1$ печатается а не 2$. ЕСЛИ я изменяю код на: awk '{печатают $1$ 2}' затем, вывод составляет $1$ 2 без вкладки или располагающий с интервалами между переменными. =================================

Как может я разделять переменные, таким образом, эхо показывают:

test1 [вкладка/пространство] test2

0
задан 20 March 2020 в 16:34

1 ответ

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

0
ответ дан 7 April 2020 в 23:32

Другие вопросы по тегам:

Похожие вопросы: