wal78
Anmeldungsdatum: 21. Oktober 2017
Beiträge: 28
|
hallo ich brauche hilfe ? ich habe eine variable | ErrNoArgs1="\e[31mError: \e[0m\e[1mCase\e[0m existiert nicht.\nBitte Prüfen Sie \e[1mCase\e[0m"
|
und das will ich in datei $file speichern ohne zeichen so
| Error Case existirt nicht Bitte prüfen Sie Case
|
Bitte helfen Sie mir ☺
|
wal78
(Themenstarter)
Anmeldungsdatum: 21. Oktober 2017
Beiträge: 28
|
hi 🙄
ich hab jetz so gemacht
echo "$ErrNoArgs1" | tr -c -d 'a-z A-Z üöäÜÖÄ\n, ' > $file
dann ergibt !!
| emError ememCaseem existiert nichtnBitte Prüfen Sie emCaseem
|
es ergibt immer noch zuviel
bitte helf mir 🙄
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
|
Hefeweiz3n
Moderator, Webteam
Anmeldungsdatum: 15. Juli 2006
Beiträge: 5813
Wohnort: Ankh-Morpork
|
wal78 schrieb: hi 🙄
ich hab jetz so gemacht
echo "$ErrNoArgs1" | tr -c -d 'a-z A-Z üöäÜÖÄ\n, ' > $file
dann ergibt !!
| emError ememCaseem existiert nichtnBitte Prüfen Sie emCaseem
|
es ergibt immer noch zuviel
Dein Problem sind die Farbencodes in deinem Text. Eine entsprechende Googlesuche bringt genügend hilfreiche Ergebnisse, das sinnvollste ist das folgende sed-Kommando: sed -r "s/\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g" Kombinierst du das mit deinem Ansatz und einem redirect in eine Datei kommt folgendes raus: echo $ErrNoArgs1 | sed -r "s/\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g" > ~/file
|
wal78
(Themenstarter)
Anmeldungsdatum: 21. Oktober 2017
Beiträge: 28
|
bei mir fuktionniert nicht gibs alternative
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
Wie wäre es mit perl?
perl -e "use Term::ANSIColor; print color \"white\"; print \"$ErrNoArgs1\n\"; print color \"reset\";" | perl -pe 's/\x1b\[[0-9;]*m//g'
|
wal78
(Themenstarter)
Anmeldungsdatum: 21. Oktober 2017
Beiträge: 28
|
seahawk1986 schrieb: Wie wäre es mit perl?
perl -e "use Term::ANSIColor; print color \"white\"; print \"$ErrNoArgs1\n\"; print color \"reset\";" | perl -pe 's/\x1b\[[0-9;]*m//g'
Fast 👍 ich habe folgendes gemacht: | date=`date +%d.%m.%Y-%H:%M:%S`
ErrNoArgs1="\e[31mError: \e[0m\e[1mCase\e[0m existiert nicht.\nBitte Prüfen Sie \e[1mCase\e[0m"
abx=$($ErrNoArgs1 | perl -e "use Term::ANSIColor; print color \"white\"; print \"$ErrNoArgs1\n\"; print color \"reset\";" | perl -pe 's/\x1b\[[0-9;]*m//g')
echo $date $abx > file
|
Es Funktioniert (schreibt) in file, nur spring Fehler raus | : Zeile 15: \e[31mError:: Kommando nicht gefunden.
|
|
Hefeweiz3n
Moderator, Webteam
Anmeldungsdatum: 15. Juli 2006
Beiträge: 5813
Wohnort: Ankh-Morpork
|
wal78 schrieb: bei mir fuktionniert nicht
Was für ein System nutzt du denn? sed ist eigentlich standardmäßig auf jeden Linux installiert, Unix ebenso (Wir nutzen das z.B. auch unter Solaris 10). Was ist denn die genaue Fehlermeldung? "Funktioniert nicht" ist wenig hilfreich.
|
wal78
(Themenstarter)
Anmeldungsdatum: 21. Oktober 2017
Beiträge: 28
|
Hefeweiz3n ❗ ich habe "sed" schön nach Installiert, geht nicht! es zeigt keine fehler, nur speichert ergebnis mit zeichen mit "perl" funktioniert fast 💡
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
wal78 schrieb: ich habe folgendes gemacht: | date=`date +%d.%m.%Y-%H:%M:%S`
ErrNoArgs1="\e[31mError: \e[0m\e[1mCase\e[0m existiert nicht.\nBitte Prüfen Sie \e[1mCase\e[0m"
abx=$($ErrNoArgs1 | perl -e "use Term::ANSIColor; print color \"white\"; print \"$ErrNoArgs1\n\"; print color \"reset\";" | perl -pe 's/\x1b\[[0-9;]*m//g')
echo $date $abx > file
|
Es Funktioniert (schreibt) in file, nur spring Fehler raus | : Zeile 15: \e[31mError:: Kommando nicht gefunden.
|
Kein wunder, du versuchst ja den Inhalt der Variablen als Befehl auszuführen, dabei steckt die doch schon im Perl-Befehl, wenn du genau hinsiehst: datum=$(date +%d.%m.%Y-%H:%M:%S)
ErrNoArgs1="\e[31mError: \e[0m\e[1mCase\e[0m existiert nicht.\nBitte Prüfen Sie \e[1mCase\e[0m"
abx="$(perl -e "use Term::ANSIColor; print color \"white\"; print \"$ErrNoArgs1\n\"; print color \"reset\";" | perl -pe 's/\x1b\[[0-9;]*m//g')"
echo $datum $abx > file
|
wal78
(Themenstarter)
Anmeldungsdatum: 21. Oktober 2017
Beiträge: 28
|
Ach ja stimmmt 😢 Danke Perfekt 👍 💡
|
Hefeweiz3n
Moderator, Webteam
Anmeldungsdatum: 15. Juli 2006
Beiträge: 5813
Wohnort: Ankh-Morpork
|
wal78 schrieb: Hefeweiz3n ❗ ich habe "sed" schön nach Installiert, geht nicht! es zeigt keine fehler, nur speichert ergebnis mit zeichen
Sorry, mein Beispiel hatte tatsächlich einen Fehler: Das Problem lag in meinem Beispiel allerdings nicht an sed sondern an echo dem der -e Schalter mitgegeben werden muss mit dem Farbcodes auch sauber interpretiert werden so das sed die auch als Steuerzeichen sieht. Das Fehlen davon führte dazu das sed die Zeichenketten nicht sauber filtern konnte... (Erläuterung: Ich nutze selbst die zsh anstatt der bash shell, und das von der zsh bereitgestellte echo nutzt automatisch den extended mode durch den Farben automatisch dargestellt werden. Bei der bash (gerade bei mir auch getestet) muss man den -e Schalter explizit angeben.) Also in Richtig:
echo -e $ErrNoArgs1 | sed -r "s/\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g" Kannst du ja gerne nochmal testen 😉.
|
wal78
(Themenstarter)
Anmeldungsdatum: 21. Oktober 2017
Beiträge: 28
|
ja mach ich spaiter 👍 Danke ☺ Hefeweiz3n
|
wal78
(Themenstarter)
Anmeldungsdatum: 21. Oktober 2017
Beiträge: 28
|
Danke hat Funktioniert 🤓 Hefeweiz3n ich brauch nochmal Hilfe 💡 und zwar umwandern alle |
farbe anfang, Fette Schrift z.B '\e[31m' und '\e[1m' ins '<b>' #Fette Schrift
und
Farbe beenden, Normale Schrift z.B '\e[0m' ins '</b>' #Normale Schrift
|
🙄
|