Возвратить несколько значений из awk
Модераторы: /dev/random, Модераторы разделов
Возвратить несколько значений из awk
Подскажите, как присвоить переменным в bash нескольких значений из awk?
команды bash
awk '{print $6,$5}'
команды bash
Как присвоить значение столбцов 2-м переменным, что-то типа z1=$6, z2=$5
команды bash
awk '{print $6,$5}'
команды bash
Как присвоить значение столбцов 2-м переменным, что-то типа z1=$6, z2=$5
Re: Возвратить несколько значений из awk
z1=`awk '{print $5}' file`
z2=`awk '{print $6}' file`
или
z1=$(awk '{print $5}' file)
но со столбцами могут быть проблемы, возможно там окажутся только значения первой строки.
z2=`awk '{print $6}' file`
или
z1=$(awk '{print $5}' file)
но со столбцами могут быть проблемы, возможно там окажутся только значения первой строки.
Спасибо сказали:
Re: Возвратить несколько значений из awk
дело в том, что awk выполняется на удаленной машине.... А если таких значений несколько, а если несколько тысяч.... хотелось бы сделать все одной командой
Re: Возвратить несколько значений из awk
Tankiro
Несколько тысяч — это задача для цикла, а не нескольких тысяч переменных.
Несколько тысяч — это задача для цикла, а не нескольких тысяч переменных.
Re: Возвратить несколько значений из awk
откройте для себя массивы:
Код: Выделить всё
var=( $(awk '{print $6,$5}') )
echo ${var[0]} ${var[1]}
Re: Возвратить несколько значений из awk
Почему только первой, просто массив будет:
for i in $(echo -e 'q w e r t y\na s d f g h' | awk '{print $5}'); do echo "<$i>"; done
<t>
<g>
Re: Возвратить несколько значений из awk
var=( $(awk '{print $6,$5}') )
echo ${var[0]}
При выводе echo ${var[0]} выводит сразу два значения $6 и $5 а ${var[1]} - пуст ((
echo ${var[0]}
При выводе echo ${var[0]} выводит сразу два значения $6 и $5 а ${var[1]} - пуст ((
Re: Возвратить несколько значений из awk
Shell
$ cat file.1
1 2 5
1 2 5
1 2 5
3 4 5
3 4 5
3 4 5
$ cat awk.sh
#!/bin/bash
i=0
for f in 1 2 3
do
func () {
awk -v col=$f '{print $col}' file.1
}
echo z$f=$(func)
done
$ ./awk.sh
z1=1 1 1 3 3 3
z2=2 2 2 4 4 4
z3=5 5 5 5 5 5
Re: Возвратить несколько значений из awk
а у вас bash?
Код: Выделить всё
[xbatob@Aries ~]$ rpm -q bash
bash-4.3.42-3.fc22.x86_64
[xbatob@Aries ~]$ v4=( $(awk '{print $6,$5}') )
1 2 3 4 5 6 7 8 9 0
[xbatob@Aries ~]$ echo $v4
6
[xbatob@Aries ~]$ echo ${v4[1]}
5
[xbatob@Aries ~]$
Re: Возвратить несколько значений из awk
s.xbatob писал(а): ↑16.03.2016 15:13
а у вас bash?
Код: Выделить всё
[xbatob@Aries ~]$ rpm -q bash bash-4.3.42-3.fc22.x86_64 [xbatob@Aries ~]$ v4=( $(awk '{print $6,$5}') ) 1 2 3 4 5 6 7 8 9 0 [xbatob@Aries ~]$ echo $v4 6 [xbatob@Aries ~]$ echo ${v4[1]} 5 [xbatob@Aries ~]$
да, bash
Tankiro писал(а): ↑16.03.2016 15:20s.xbatob писал(а): ↑16.03.2016 15:13
а у вас bash?
Код: Выделить всё
[xbatob@Aries ~]$ rpm -q bash bash-4.3.42-3.fc22.x86_64 [xbatob@Aries ~]$ v4=( $(awk '{print $6,$5}') ) 1 2 3 4 5 6 7 8 9 0 [xbatob@Aries ~]$ echo $v4 6 [xbatob@Aries ~]$ echo ${v4[1]} 5 [xbatob@Aries ~]$
да, bash
Оригинальная строка такая
var=$(ssh root@$IP ls --full-time -h $BPATH/stor-$DAT.tar | awk '{print $6,$5}')