Vortrag Regular Expressions

Aus GNU/Linux User Group Kaiserslautern

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Version vom 14:05, 31. Mai 2007 (bearbeiten)
Erinnern (Diskussion | Beiträge)
(2. Schritt)
← Zum vorherigen Versionsunterschied
Version vom 14:06, 31. Mai 2007 (bearbeiten) (rückgängig)
Erinnern (Diskussion | Beiträge)
(3. Schritt)
Zum nächsten Versionsunterschied →
Zeile 40: Zeile 40:
==== 3. Schritt ==== ==== 3. Schritt ====
- echo "</table></body></html>" >> /var/www/cms/index_2.html+jepp, dann steht jetzt hier auch noch etwas, vielleicht stimmen dann ja die Formatierungen:
 + echo " </t able></b ody></h tml>" >> /var/www/cms/index_2.html
=== Ergebnis: === === Ergebnis: ===

Version vom 14:06, 31. Mai 2007

Reguläre Ausdrücke

Manual page als Lektüre:

man perlre
man sed


Aufgabe:

Wir haben eine Dateieingabe der folgenden Form:

^ Bereich_0  \t Bereich_1 \t Bereich_2 \t Bereich_3 \t Bereich_4 $

und möchten diese in folgende HTML-Form überführen:

<tr><td>Bereich_0</td><td>Bereich_1</td></tr>
<tr><td>Bereich_2</td><td>Bereich_3</td><td>Bereich_4</td></tr>


Struktur unseres Dateiinputs

^ Bereich_1  \t Bereich_2 \t Bereich_3 \t Bereich_4 \t Bereich_5 \t B_6 \t B_7 $
^ DE         \t Name      \t Tag       \t Monat     \t Jahr      \t 0   \t 0   $

1. Schritt

 echo "" > /var/www/cms/index_2.html &&

==== 2. Schritt ====

im Folgenden der Befehl, mit kleinen Umbrüchen, denn ansonsten schreibt man es hintereinander, was hier zugunsten der besseren Lesbarkeit anders gelöst wurde:

  cat tmp0_holidays.DE.csv 
  sed -e 's/\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\)/
  \\\2\<\/td\>\\3.\4.\5\<\/td\>\<\/tr\>/' 
  >> /var/www/cms/index_2.html & &

Oben muss aufgrund welcher Umstände auch immer das erste 'tr' in der 3.Zeile von oben natürlich zusammengeschrieben werden. Nur leider interprtiert unser Wiki das dann leider als Tabelle ;) Ihr seid sicher so klever das hinzukriegen!

==== 3. Schritt ====

jepp, dann steht jetzt hier auch noch etwas, vielleicht stimmen dann ja die Formatierungen:

 echo " " >> /var/www/cms/index_2.html

=== Ergebnis: ===

Die Schritte zusammen ergeben folgende Ausgabe: 

 | Name | Datum (Tag.Monat.Jahr) | 

 


==== 1. Schritt ====

 echo "
Bereich_1Bereich_2Bereich_3.Bereich_4.Bereich_5
\1 \2 \3 . \4 . \5
" > /var/www/cms/index.html && ==== 2. Schritt ==== cat tmp0_holidays.DE.csv sed -e 's/;/\<\/td\>\/g' sed -e 's/^/\\/' sed -e 's/$/\<\/td\>\<\/tr\>/' >> /var/www/cms/index.html && '''ergibt''' DE;Rosenmontag;19;2;2007;0;0 ==== 3. Schritt ==== echo "
DE Rosenmontag 19 2 2007 0 0
" >> /var/www/cms/index.html


Ergibt folgende Tabellenausgabe:

 | DE    | Name | Tag | Monat | Jahr | 0 | 0 |
Persönliche Werkzeuge