Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Variablen Spaltenweise verknüpfen

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
bunter fisch
Member
Member
Beiträge: 69
Registriert: 12. Sep 2017, 10:25

Variablen Spaltenweise verknüpfen

Beitrag von bunter fisch » 4. Aug 2018, 08:34

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

Werbung:
abgdf
Guru
Guru
Beiträge: 3097
Registriert: 13. Apr 2004, 21:15

Re: Variablen Spaltenweise verknüpfen

Beitrag von abgdf » 4. Aug 2018, 10:12

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

spoensche
Moderator
Moderator
Beiträge: 7376
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Re: Variablen Spaltenweise verknüpfen

Beitrag von spoensche » 4. Aug 2018, 10:24

Code: Alles auswählen

echo "a b c" | column -t

abgdf
Guru
Guru
Beiträge: 3097
Registriert: 13. Apr 2004, 21:15

Re: Variablen Spaltenweise verknüpfen

Beitrag von abgdf » 4. Aug 2018, 10:28

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. :)

Benutzeravatar
framp
Moderator
Moderator
Beiträge: 4265
Registriert: 6. Jun 2004, 20:57
Wohnort: bei Stuttgart
Kontaktdaten:

Re: Variablen Spaltenweise verknüpfen

Beitrag von framp » 4. Aug 2018, 10:41

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

bunter fisch
Member
Member
Beiträge: 69
Registriert: 12. Sep 2017, 10:25

Re: Variablen Spaltenweise verknüpfen

Beitrag von bunter fisch » 5. Aug 2018, 14:25

Hab es doch noch mit paste hinbekommen:

Code: Alles auswählen

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

abgdf
Guru
Guru
Beiträge: 3097
Registriert: 13. Apr 2004, 21:15

Re: Variablen Spaltenweise verknüpfen

Beitrag von abgdf » 6. Aug 2018, 00:39

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 ...

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste