LINUX.ORG.RU

list in bash


0

0

Имеются две переменные:

a="A1 A2 A3"
b="B1 B2 B3"

надо получить "A1 B1 A2 B2 C1 C2"

как это в bash попроще сделать?

anonymous

Ответ на: комментарий от fura13

Ifaces=`ifconfig | grep -v "^ " | grep -v "^$" | grep -v '^lo'| awk '{print $1}'` IPs=`ifconfig | grep inet | grep -v "127.0.0.1" | grep -v "inet6" | awk '{print $2}' | sed -e "s/^.*://g"`;

xxx= #тут их надо соединить

$DIALOG --clear --title "" --menu "Choose the interface:" 10 51 3 $xxx 2> $tempfile

anonymous
()
Ответ на: комментарий от anonymous

#!/bin/sh

a="A1 A2 A3"
b="B1 B2 B3"

cxi=0
for i in $a
do
    cxj=0
    for j in $b
    do
        if [ $cxi -eq $cxj ]; then
            echo -n "$i $j "
            break
        fi
        cxj=`echo "$cxj+1"|bc`
    done
    cxi=`echo "$cxi+1"|bc`
done

echo

Да многовато и не оч просто, зато накласть на длину :)

fura13 ★★★
()
Ответ на: комментарий от anonymous

Тоды нужно засеть с awk и sed'ом и с ящиком пива :) и парсить до результата ifcofig, и не раздельно , а сразу резалт компоновать.

Возможно есть и проще решение, но это тебе до завтра нужно ждать, когда гуры придут :).

fura13 ★★★
()
Ответ на: комментарий от anonymous

xxx=`ip addr show| sed '/link/d; /^[0-9]:/s/[0-9]: \(.*\):.*$/\1/; /inet/s/.*inet \([0-9\.]*\)[\/ ].*$/\1/; /127\.0\.0\.1/d; /lo/d'`

$DIALOG --clear --title "" --menu "Choose the interface:" 10 51 3 $xxx 2> $tempfile

sdio ★★★★★
()
Ответ на: комментарий от sdio

$ xxx=`ip addr show| sed '/link/d; /^[0-9]:/s/[0-9]: \(.*\):.*$/\1/; /inet/s/.*inet \([0-9\.]*\)[\/ ].*$/\1/; /127\.0\.0\.1/d; /lo/d'`

$ echo $xxx

eth0 10.0.0.1 eth1 10.1.6.254 tun0 11.8.0.1

sdio ★★★★★
()

echo $a | xargs -n 1 > /tmp/aaa
echo $b | xargs -n 1 > /tmp/bbb
c=`paste /tmp/aaa /tmp/bbb`

dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.