Seite 1 von 1

Variablen Spaltenweise verknüpfen

Verfasst: 4. Aug 2018, 08:34
von bunter fisch
Hi,

kann man in der Shell irgendwie Variablen zeilenweise angeordneten Inhalten so verknüpfen, dass jeweils die Inhalte in einer Zeile zusammengefügt werden? Angenommen ich habe die Variable $a mit dem Inhalt

Code: Alles auswählen

das
ist
ein
test
und die Variable $b mit dem Inhalt

Code: Alles auswählen

heute
ist
wieder
warm
Dann soll am Ende rauskommen

Code: Alles auswählen

das heute
ist ist
ein wieder
test warm
Angeblich soll das mit 'paste' gehen, ich finde aber hier https://wiki.ubuntuusers.de/paste/ nur sehr kryptische Beispiele, mit Variablen wird das leider nicht erklärt. Ich würde gern vermeiden das in eine Datei zwischenspeichern zu müssen.

bunter fisch

Re: Variablen Spaltenweise verknüpfen

Verfasst: 4. Aug 2018, 10:12
von abgdf
Sollen das Arrays sein?
Dieses macht daraus nämlich sonst eine Zeile:

Code: Alles auswählen

#!/bin/bash

a="das
ist
ein
test"

b="heute
ist
wieder
warm"

echo $a

Re: Variablen Spaltenweise verknüpfen

Verfasst: 4. Aug 2018, 10:24
von spoensche

Code: Alles auswählen

echo "a b c" | column -t

Re: Variablen Spaltenweise verknüpfen

Verfasst: 4. Aug 2018, 10:28
von abgdf
Von Hand würde sowas gehen:

Code: Alles auswählen

#!/bin/bash

a="das
ist
ein
test"

b="heute
ist
wieder
warm"

x=0
y=0
echo "$a" | while read i
do
    echo "$b" | while read u
    do
        if test $x -eq $y
        then
            echo "$i $u"
            break
        fi
        let "y += 1"
    done
    let "x += 1"
done
Wäre natürlich nicht sehr schnell.
Übrigens: Ich hasse bash. :)

Re: Variablen Spaltenweise verknüpfen

Verfasst: 4. Aug 2018, 10:41
von framp

Code: Alles auswählen

#!/bin/bash

a=$'1\n2\n3\n4'
b=$'a\nb\nc\nd'
IFS=""

echo "-A-"
echo $a
echo "-B-"
echo $b
c=$(paste <(echo "$a") <(echo "$b"))

echo "-C-"
echo $c

Code: Alles auswählen

-A-
1
2
3
4
-B-
a
b
c
d
-C-
1	a
2	b
3	c
4	d

Re: Variablen Spaltenweise verknüpfen

Verfasst: 5. Aug 2018, 14:25
von bunter fisch
Hab es doch noch mit paste hinbekommen:

Code: Alles auswählen

paste <(echo "$var1") <(echo "$var2")

Re: Variablen Spaltenweise verknüpfen

Verfasst: 6. Aug 2018, 00:39
von abgdf
bunter fisch hat geschrieben:
5. Aug 2018, 14:25
Hab es doch noch mit paste hinbekommen:

Code: Alles auswählen

paste <(echo "$var1") <(echo "$var2")
Das war framps Vorschlag ...