Array set -A

Dieses Thema im Forum "Programmieren allgemein" wurde erstellt von Tommy_WY, 11.06.2008.

  1. #1 Tommy_WY, 11.06.2008
    Tommy_WY

    Tommy_WY Mitglied

    Dabei seit:
    03.06.2008
    Beiträge:
    28
    Zustimmungen:
    0
    Hallo zusammen,

    ich hab da noch ein Problem... doof... ist aber so :hilfe2:

    Hab mir alles aus einem Directorys in eine Datei ge grep t

    ls -lRatr|grep date >${WD}/show_dir.log

    Dann zieh ich mir nur nur die Unterverzeichnisse aus dieser Datei und hierbei nur bestimmte, die ich in einer anderen Datei ablege (nur mit den Namen aus $9)

    cat show_dir.log |awk '/^d/&&/EAR$/ {print $9}' >${WD}/dir_names.log

    Kommen wir jetzt zu dem Problem.
    Ich möchte genau diese Verzeichnisse in einem Array ablegen, damit ich sie für diverse Zwecke nutzen kann.
    Wie geht das?
    Für Hilfe wäre ich wirklich dankbar.

    Gruss
    Tommy
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. NoXqs

    NoXqs Routinier

    Dabei seit:
    07.05.2007
    Beiträge:
    420
    Zustimmungen:
    0
    Ort:
    Bremen
    ungetestet:
    Code:
    
    typeset -i x=1
    while read line
    do
    VAR1[x]=${line}
    (( x = x + 1 ))
    done < ${WD}/dir_names.log
    
     
  4. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    naja, du brauchst zB eine Schleife, die dir Datei für Datei (Ordner für Ordner) in das Array packt.
    in ruby ginge das so

    Code:
    ..
    array = []
    while entry = dir.read
    	if entry != "." && entry != ".."
    	inhalt.push entry
    	end
    end
    

    Ciao
     
  5. #4 Gott_in_schwarz, 11.06.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Von welcher Programmiersprache redest du denn? (wenn die Antwort "shell" ist: von welcher shell redest du denn?)
    Meine bash kennt kein ${WD} (working directory?), nur ${PWD}, wobei man sowas auch (bei Pfadangaben) durch einen Punkt ersetzen kann. (Zumindest, wenn man keinen absoluten Pfad braucht, was bei dir imho der Fall ist..)

    Hier mal einige Beispiele für Arraydeklarationen in bash:
    Code:
    arrayA=(1 2 3 4)
    arrayB=(a b c d ef)
    arrayC=(foo
    bar
    baz)
    arrayD=( $(echo "ich bin die ausgabe eines kommandos") )
    In der ksh (und damit auch zsh) scheint das soweit auch zu funktionieren.
    Zugriff auf arrays:
    Code:
    echo ${arrayA[0]} # gibt "1" aus
    echo ${arrayB[2]} # gibt "c" aus
    echo ${arrayC[1]} # gibt "bar" aus
    echo ${arrayD[3]} # gibt "ausgabe" aus
     
  6. #5 Tommy_WY, 11.06.2008
    Zuletzt bearbeitet: 11.06.2008
    Tommy_WY

    Tommy_WY Mitglied

    Dabei seit:
    03.06.2008
    Beiträge:
    28
    Zustimmungen:
    0
    Hi ich rede von der ksh, weil ich trouble mit der bash und dem autoload von functions hatte.
    Ich habe eine Datei die dir_names.log, in der sich jetzt die Verzeichnisse befinden. Der Inhalt, den ich ja so nicht kenne, deswegen lese ich ihn aus und deklariere das Array nicht so... das war lang... Der Inhalt der Datei soll eben Zeile für Zeile in das Array abgelegt werden.

    also soll echo $array[1] von mir aus das folgende beinhalten irgendeinEAR
    und in $array[2] soll "einanderesEAR" stehen.
    Das alles eben bis ich alles Verzeichnisse im Array hab.

    Gruss
    Tommy
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    aja und $WD ist meine Variable für mein spezielles WorkingDir
    und ich baue ein shell script
     
  7. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    sorry, aber ich kann dir grade garnicht mehr folgen.

    was hast du und was willst du
    (kennst du die Ordnertiefe; wie soll am Ende das Array (die Arrays?) aussehen) ?


    Ciao
     
  8. #7 Tommy_WY, 11.06.2008
    Tommy_WY

    Tommy_WY Mitglied

    Dabei seit:
    03.06.2008
    Beiträge:
    28
    Zustimmungen:
    0
    in meinem WD existiert ein dir LOGS unter LOGS existieren die besagten Ordner, die sich jetzt in der datei dir_names.log befinden.
    diese namen will ich in einen array extrahieren.. zeile für zeile ... das ist alles
     
  9. #8 Gott_in_schwarz, 11.06.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Dann ungefähr so wie noxqs das gezeigt hat:
    Code:
    i=0
    while read logfile; do
        arrayFoo[$i]="$logfile"
        ((i++))
    done < inFile
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 Tommy_WY, 12.06.2008
    Tommy_WY

    Tommy_WY Mitglied

    Dabei seit:
    03.06.2008
    Beiträge:
    28
    Zustimmungen:
    0
    super danke. das funzt... iss ja geil !!!!!
     
  12. #10 Gott_in_schwarz, 13.06.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Der Vollständigkeit halber: Diese Version ist nur dann notwendig, wenn sich in einer Zeile auch mal Leerzeichen befinden.
    Aber sogar dann würde es auch so gehen:
    Code:
    OLD_IFS="$IFS"
    IFS=$'\n' array=( $(echo -e "zeile 1 mit leerzeichen\nnoch mehr leerzeichen") )
    echo ${array[0]}
    echo ${array[1]}
    IFS="$OLD_IFS"
    unset OLD_IFS
    Statt des echo-Kommandos könnte natürlich jedes Kommando genommen werden... (zum Beispiel "cat datei_mit_den_logfiles" oder so..)
     
Thema:

Array set -A

Die Seite wird geladen...

Array set -A - Ähnliche Themen

  1. Daten UND Betriebssystem, alles auf einem SW-RAID1-Array...?

    Daten UND Betriebssystem, alles auf einem SW-RAID1-Array...?: Hallo zusammen Wollte fragen wie man sowas macht, leider finde ich im Internet immer nur die Anleitungen wo davon ausgegangen wird dass eine sep....
  2. Php: User defined function inside array

    Php: User defined function inside array: Hi Alle, Ich habe ein Problem mit PHP: habe eine funktion definiert: function test($a1) {return($a1*5);}kann diese auch wie gewohnt als teil...
  3. bash: Fehlermeldung und Werte in Array sortieren?

    bash: Fehlermeldung und Werte in Array sortieren?: Hallo, ich probiere den ganzen Tag schon mir bestimmte Teile aus einer Riesentextdatei ausgeben und in mehrere kleine Dateien schreiben zu...
  4. Array mit Werte - die Leerzeichen beinhalten - abfüllen

    Array mit Werte - die Leerzeichen beinhalten - abfüllen: Hallo zusammen Bin neu hier und hab direkt eine Frage... Ich habe ein Befehl der mir einige Zeilen mit Werten ausgibt: Befehl:...
  5. RUBY tree_depth eines Arrays

    RUBY tree_depth eines Arrays: Hallo, ich habe da eine Aufgabe: Ich soll die Baumtiefe eines beliebig mehrdimensionalen Arrays bestimmen. Die Funktion soll so aussehen:...