Передача переменных в awk - PullRequest
0 голосов
/ 25 мая 2018
number=3
var="mango pineapple watermelon"
var1=("echo $var | awk '{print $number}'")
echo $var1

Приведенный выше скрипт bash не принимает значение числа как 3. Мне нужно использовать значение переменной после оператора print в приведенном выше коде.Я получаю номер переменной в качестве значения счетчика в цикле for. Как я могу добиться этого?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

кажется бесполезным, но это должно работать ...

$ number=3
$ var="mango pineapple watermelon"
$ var1=$(echo "$var" | awk -v field="$number" '{print $field}')
$ echo "$var1"

вы должны получить "арбуз" в качестве значения var1.

0 голосов
/ 25 мая 2018

Предположим, у вас есть:

$ n=3

Типичный способ передачи этой переменной оболочки в awk:

$ awk -v n="$n" 'BEGIN {print n}'
3

Если вы хотите записать этот вывод в новую переменную:

$ n2=$(awk -v n="$n" 'BEGIN {print n}')
$ echo "$n2"
3

Когда вы вводите вход конвейера в awk, становится неясно, что вы ожидаете ...


Если вы пытаетесь выбрать n -е слововвода строки:

$ var="mango pineapple watermelon"
$ echo "$var" | awk -v n="$n" '{print $n}'
watermelon

И если вы пытаетесь поместить это в var2:

$ var2=$(echo "$var" | awk -v n="$n" '{print $n}')
$ echo "$var2"
watermelon
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...