Предположим, у вас есть:
$ 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