Vortrag Regular Expressions

Aus GNU/Linux User Group Kaiserslautern

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Version vom 14:06, 31. Mai 2007 (bearbeiten)
Erinnern (Diskussion | Beiträge)
(3. Schritt)
← Zum vorherigen Versionsunterschied
Aktuelle Version (14:12, 31. Mai 2007) (bearbeiten) (rückgängig)
Erinnern (Diskussion | Beiträge)
(Reguläre Ausdrücke)
 
(Der Versionsvergleich bezieht eine dazwischen liegende Version mit ein.)
Zeile 25: Zeile 25:
==== 1. Schritt ==== ==== 1. Schritt ====
- echo "<html><body><table border=1>" > /var/www/cms/index_2.html &&+ <nowiki>echo "<html><body><table border=1>" > /var/www/cms/index_2.html &&</nowiki>
==== 2. Schritt ==== ==== 2. Schritt ====
Zeile 31: Zeile 31:
im Folgenden der Befehl, mit kleinen Umbrüchen, denn ansonsten schreibt man es hintereinander, was hier zugunsten der besseren Lesbarkeit anders gelöst wurde: 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 + <nowiki>cat tmp0_holidays.DE.csv |</nowiki>
- sed -e 's/\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\)/+ <nowiki>sed -e 's/\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\)/</nowiki>
- \<t r\>\<td\>\2\<\/td\>\<td\>\3.\4.\5\<\/td\>\<\/tr\>/' + <nowiki>\<tr\>\<td\>\2\<\/td\>\<td\>\3.\4.\5\<\/td\>\<\/tr\>/'</nowiki>
- >> /var/www/cms/index_2.html & &+ <nowiki>>> /var/www/cms/index_2.html &&</nowiki>
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! 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!
Zeile 40: Zeile 40:
==== 3. Schritt ==== ==== 3. Schritt ====
-jepp, dann steht jetzt hier auch noch etwas, vielleicht stimmen dann ja die Formatierungen:+ echo <nowiki>" </table></body></html>" >> /var/www/cms/index_2.html</nowiki>
- +
- echo " </t able></b ody></h tml>" >> /var/www/cms/index_2.html+
=== Ergebnis: === === Ergebnis: ===
Zeile 56: Zeile 54:
==== 1. Schritt ==== ==== 1. Schritt ====
- echo "<html><body><table border=1>" > /var/www/cms/index.html &&+ echo <nowiki>"<html><body><table border=1>" > /var/www/cms/index.html &&</nowiki>
- +
==== 2. Schritt ==== ==== 2. Schritt ====

Aktuelle Version

Inhaltsverzeichnis

[bearbeiten] Reguläre Ausdrücke

Manual page als Lektüre:

man perlre
man sed


[bearbeiten] 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   $

[bearbeiten] 1. Schritt

 echo "<html><body><table border=1>" > /var/www/cms/index_2.html &&

[bearbeiten] 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/\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\)/
 \<tr\>\<td\>\2\<\/td\>\<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!

[bearbeiten] 3. Schritt

echo " </table></body></html>" >> /var/www/cms/index_2.html

[bearbeiten] Ergebnis:

Die Schritte zusammen ergeben folgende Ausgabe:

| Name | Datum (Tag.Monat.Jahr) | 
<tr><td>Bereich_1</td><td>Bereich_2</td><td>Bereich_3.Bereich_4.Bereich_5</td></tr>
<tr><td>  \1     </td><td>    \2   </td><td>    \3   .   \4    .    \5   </td></tr>


[bearbeiten] 1. Schritt

echo "<html><body><table border=1>" > /var/www/cms/index.html &&

[bearbeiten] 2. Schritt

cat tmp0_holidays.DE.csv
sed -e 's/;/\<\/td\>\<td\>/g' 
sed -e 's/^/\<tr\>\<td\>/' 
sed -e 's/$/\<\/td\>\<\/tr\>/' 
>> /var/www/cms/index.html && 

ergibt

DE;Rosenmontag;19;2;2007;0;0 
     <tr>
       <td>DE</td>
       <td>Rosenmontag</td>
       <td>19</td>
       <td>2</td>
       <td>2007</td>
       <td>0</td>
       <td>0</td>
     </tr>

[bearbeiten] 3. Schritt

echo "</table></body></html>" >> /var/www/cms/index.html


Ergibt folgende Tabellenausgabe:

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