Mailinglist Archive: opensuse-de (1622 mails)
| < Previous | Next > |
Re: Mit sed loesen?
- From: Al Bogner <suse-linux@xxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 7 Sep 2005 13:02:34 +0200
- Message-id: <200509071302.34360.suse-linux@xxxxxxxxxxxxxxxxxxxx>
Am Mittwoch, 7. September 2005 02:32 schrieb David Haller:
Hallo David,
> Am Tue, 06 Sep 2005, Al Bogner schrieb:
> >Wie extrahiere ich nun in eine neue Variable "red"?
>
> Einfach:
>
> COLOR="` ... identify ... | \
> sed -n '/Histogram:/,/Rendering-intent:/p' | \
> sort -n | grep -v 'white\|black' | tail -n 1 | awk '{print $NF;}'`"
>
> So, sed+grep+awk ist "bäh"
Funktioniert, während ich hier mit deiner 2. Variante Probleme habe. Es ist
zwar mittlerweile geringfügig anders, aber ich sehe da keinen entscheidenden
Unterschied:
convert "$INP" -strip -resize 100x -blur 3x3 -colors 16 "$GIFFILE"
identify_out="`identify -verbose $GIFFILE`"
# Das fehlende Quoting von $GIFFILE sollte kein Problem sein,
# die Datei hat keine Leerzeichen
set +H ## weiss nicht, ob das in einem script wichtig ist
COLOR="`echo \"$i\" | awk -F: '
BEGIN { max = 0; }
/Histogram:/,/Rendering-intent:/ {
if( $0 !~ /Histo|Render|white|black/ ) {
if( $1 > max ) {
max = $1;
maxcol = gensub("[()0-9, ]", "", "g", $2);
}
}
}
END{ print maxcol; }'`"
echo COLOR $COLOR
Ich verstehe auch nicht, was du da alles gemacht hast. Zuerst wird eine
Variable identify_out definiert. Was set +H bedeutet will mir "man set" nicht
verraten. Warum nun $i definiert ist, ist mir auch nicht klar ...
In der IM-ML kam zu einer ähnlichen Problematik folgender Hinweis:
convert rose: -strip -colors 216 histogram:- | \
sed -n '/^Comment={/,/^}/{ s///; /^$/q; s///; p; }' | \
sort -rn | head -1
Result for a rose image...
115: (253,253,251) #FDFDFB
Allerdings wird hier der Comment-Tag des Histogramm-Files ausgewertet, der für
mich nicht zielführend ist. Es geht darum festzustellen, welche Farbe des
Bildes dominiert. Ich denke, dass es reicht auf 16 Farben einzugrenzen.
Al
Hallo David,
> Am Tue, 06 Sep 2005, Al Bogner schrieb:
> >Wie extrahiere ich nun in eine neue Variable "red"?
>
> Einfach:
>
> COLOR="` ... identify ... | \
> sed -n '/Histogram:/,/Rendering-intent:/p' | \
> sort -n | grep -v 'white\|black' | tail -n 1 | awk '{print $NF;}'`"
>
> So, sed+grep+awk ist "bäh"
Funktioniert, während ich hier mit deiner 2. Variante Probleme habe. Es ist
zwar mittlerweile geringfügig anders, aber ich sehe da keinen entscheidenden
Unterschied:
convert "$INP" -strip -resize 100x -blur 3x3 -colors 16 "$GIFFILE"
identify_out="`identify -verbose $GIFFILE`"
# Das fehlende Quoting von $GIFFILE sollte kein Problem sein,
# die Datei hat keine Leerzeichen
set +H ## weiss nicht, ob das in einem script wichtig ist
COLOR="`echo \"$i\" | awk -F: '
BEGIN { max = 0; }
/Histogram:/,/Rendering-intent:/ {
if( $0 !~ /Histo|Render|white|black/ ) {
if( $1 > max ) {
max = $1;
maxcol = gensub("[()0-9, ]", "", "g", $2);
}
}
}
END{ print maxcol; }'`"
echo COLOR $COLOR
Ich verstehe auch nicht, was du da alles gemacht hast. Zuerst wird eine
Variable identify_out definiert. Was set +H bedeutet will mir "man set" nicht
verraten. Warum nun $i definiert ist, ist mir auch nicht klar ...
In der IM-ML kam zu einer ähnlichen Problematik folgender Hinweis:
convert rose: -strip -colors 216 histogram:- | \
sed -n '/^Comment={/,/^}/{ s///; /^$/q; s///; p; }' | \
sort -rn | head -1
Result for a rose image...
115: (253,253,251) #FDFDFB
Allerdings wird hier der Comment-Tag des Histogramm-Files ausgewertet, der für
mich nicht zielführend ist. Es geht darum festzustellen, welche Farbe des
Bildes dominiert. Ich denke, dass es reicht auf 16 Farben einzugrenzen.
Al
| < Previous | Next > |