Sortierungsproblem Bash

karloff

karloff

Routinier
Moin,

ich hab ein kleines Problem mit ner output Sortierung von nem Bashscript.
Folgendes Script:
Code:
makemenuetop() {
PWD=($1)
#makemenue $1
for i in $(find ${PWD} -name 'index*'); do
DIRNAME=(`dirname $i`)
BASENAME=(`basename ${DIRNAME}`)
Array1=( $(echo ${BASENAME}) )
#makemenue ${PWD}
#Array=( $(echo ${PWD}) )
Array2=( $(echo ${PWD}) )
Array3=( $(echo ${Array1}) $(echo ${Array2}) )
echo -e ${Array1} |uniq
echo ${Array2}
#echo ${Array3}
done
}
Ich weiß nicht hübsch, aber es funktioniert schon fast, der output sieht wie folgt aus:
Code:
basname1
filename1.1
basename1
filename1.2
basename1
filename1.3
basname2
filename2.1
basename2
filename2.2
usw.

ich brauch es allerdings in der form
basname1
filename1.1
filename1.2
filename1.3
basname2
filename2.1
filename2.2
usw.

Ich hoffe ihr versteht was ich meine und könnt mir weiterhelfen, mir sind irgendwie die ideen ausgegangen :(
 
dann wirst du wohl zwei schleifen brauchen ;) eine innere und eine äußere.

die äußere durchläuft basename springt dann in die innere, wo es die filenames durchläuft.
 
Ich habs mal auf die Art und Weise gelöst.....

Code:
[FONT="Courier New"]TMP_FILE=output.tmp
> $TMP_FILE
FS="°"

while read AKT_ZEILE; do

NUMERIK="`echo $AKT_ZEILE | tr -d [a-zA-Z]`"
case $NUMERIK in
        *\.*)   NUMERIK="`echo $NUMERIK | tr . " "`" ;;
        *)      NUMERIK="$NUMERIK 0" ;;
esac

echo ${NUMERIK}${FS}${AKT_ZEILE} >> $TMP_FILE

done < output.txt

sort $TMP_FILE | cut -d${FS} -f2-[/FONT]

Das ist die Datenbasis, wie von Dir vorgegeben... (output.txt)
Code:
[FONT="Courier New"]basname1
filename1.1
basename1
filename1.2
basename1
filename1.3
basname2
filename2.1
basename2
filename2.2[/FONT]

so sieht dann das TMP_FILE aus.....
In diesem TMP-File kann nun anhand der Zahlen in den ersten beiden Feldern sortiert werden.....
Code:
[FONT="Courier New"]1 0°basname1
1 1°filename1.1
1 0°basename1
1 2°filename1.2
1 0°basename1
1 3°filename1.3
2 0°basname2
2 1°filename2.1
2 0°basename2
2 2°filename2.2[/FONT]

fertig sortiert und die Hilfszahlen am Anfrang der Zeile wieder gelöscht....
Code:
[FONT="Courier New"]basename1
basename1
basname1
filename1.1
filename1.2
filename1.3
basename2
basname2
filename2.1
filename2.2[/FONT]
 

Ähnliche Themen

Summe von Zahlen in einer Zeilen bilden

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

ssh unterbricht while Schleife

Bash Skript: [[: not found Fehler

[Suche] - Hilfe bei der Überarbeitung eines bash-Scripts

Zurück
Oben