/ / Bash awk: анализиране на променливия низ в друга променлива? [дубликат] - баш, анализиране, awk

Bash awk: анализиране на променливия низ в друга променлива? [дубликат] - баш, анализиране, awk

Бих искал да извлека всички стойности, съдържащи се в $ line и да ги постави в променливите var1, var2, ... varn. Аз го използвах по-рано, за да извличам vars от файла (in.txt)

var1=$(awk  "{print  $1}" < in.txt)
var2=$(awk  "{print  $2}" < in.txt)
....
varn=$(awk  "{print  $n}" < in.txt)

Как да променя повикването си за awk, за да използвам $ line вместо in.txt? Опитах ги например

echo $line | var2=$(awk "{print  $2}")

или

var2=$(echo $line | awk "{print  $2}")

но без успех ...

========== ДЕТАЙЛ ==============

----- извикване на файл:

 .....
name=Matrix
line=$(sed  -n "/^[T]/ {n;p}" in.txt)
echo "line: " $line
L1=$(./procline_matrix_vars.sh $line 30 $name)
echo "L1: " $L1

------- rocline_matrix_vars.sh:

#!/bin/bash

line=$1
choice=$2

var1=$(echo $line | awk "{print $1}")
var2=$(echo $line | awk "{print $2}")
var3=$(echo $line | awk "{print $3}")
var4=$(echo $line | awk "{print $4}")


if [ $choice == 30 ]; then
L1=$(printf "nnn%s = [ %s %s %s %s n" "$3" "$var1" "$var2" "$var3" "$var4")
fi

echo  "${L1%.}"

Отговори:

1 за отговор № 1

един възможен начин:

line="aaa bbb ccc"

var=( $line )

echo "${var[1]}"
echo "my array has ${#var[@]} elements"

продукция

bbb
my array has 3 elements

може би пряк път

var=( $( awk "{print $1, $2, $10}" file ) )