ich habe so einen strings und muß alle doppelten rauswerfen.
2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.9
so soll es dann aussehen
2.8 2.9
leider habe ich nur, was die busybox hergibt. (sed, cut, grep, sort (ohne -u ;())
Vielen dank
shell strings uniq machen
- Voyager_MP
- Beiträge: 628
- Registriert: 22.06.2004 10:04:07
- Wohnort: Aachen
shell strings uniq machen
Gruß Michel
Re: shell strings uniq machen
eine shell script variante von "uniq":
Gruß
gms
Code: Alles auswählen
gms2 ~ # cat uniq.sh
#!/bin/sh
uniq() {
local X=()
local i=-1
local word
for word in "$@"; do
if [[ " ${X[@]} " != *" ${word} "* ]]; then
i=$((i+1))
X[$i]="${word}"
fi
done
echo "${X[@]}"
}
uniq "$@"
gms2 ~ # ./uniq.sh 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.8 2.9
2.8 2.9
gms
Re: shell strings uniq machen
Die busybox hat doch ein `uniq'!Voyager_MP hat geschrieben:sort (ohne -u ;()
... `sort -u' should really be considered harmful (like `cat -v').
People don't even know about `uniq'!
Use ed once in a while!
Re: shell strings uniq machen
Sehr interessant gms. Aber wofür benötigt man die * in der if-Abfrage?
(kenne ich so gar nicht)
(kenne ich so gar nicht)
Oh, yeah!
Re: shell strings uniq machen
nehmen wir mal an, daß im Array "X" die Werte "2.8" und "2.9" schon eingetragen wurden und in der Variable "word" auch "2.8" steht und wir wollen Abfragen, ob der Inhalt von "word" schon im Array "X" enthalten ist.Duff hat geschrieben:Sehr interessant gms. Aber wofür benötigt man die * in der if-Abfrage?
dann würde die expandierte Zeile so ausschauen
Code: Alles auswählen
if [[ " 2.8 2.9 " != *" 2.8 "* ]]; then
Gruß
gms
edit: die Doku zu "*" findest du in "man bash" unter "Pattern Matching" und unter "Compund Commands" wird die "[[ expression ]]" Expression genauer beschrieben. Wichtig ist hier, daß der Pattern immer auf der rechten Seite der Abfrage stehen muß:
man bash hat geschrieben: When the == and != operators are used, the string to the right
of the operator is considered a pattern and matched according to
the rules described below under Pattern Matching.
Re: shell strings uniq machen
@gms: OK, danke für die ausführliche Erklärung. Nun habe ich es verstanden, denke ich.
Oh, yeah!