Vortrag Regular Expressions
Aus GNU/Linux User Group Kaiserslautern
(Unterschied zwischen Versionen)
| Version vom 14:03, 31. Mai 2007 (bearbeiten) Erinnern (Diskussion | Beiträge) (→2. 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 3 dazwischen liegende Versionen 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 ==== | ||
| - | cat tmp0_holidays.DE.csv | + | |
| - | sed -e 's/\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\)/ | + | im Folgenden der Befehl, mit kleinen Umbrüchen, denn ansonsten schreibt man es hintereinander, was hier zugunsten der besseren Lesbarkeit anders gelöst wurde: |
| - | \< | + | |
| - | >> /var/www/cms/index_2.html & & | + | <nowiki>cat tmp0_holidays.DE.csv |</nowiki> |
| + | <nowiki>sed -e 's/\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\);\(.*\)/</nowiki> | ||
| + | <nowiki>\<tr\>\<td\>\2\<\/td\>\<td\>\3.\4.\5\<\/td\>\<\/tr\>/'</nowiki> | ||
| + | <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 37: | Zeile 40: | ||
| ==== 3. Schritt ==== | ==== 3. Schritt ==== | ||
| - | echo "</table></body></html>" >> /var/www/cms/index_2.html | + | echo <nowiki>" </table></body></html>" >> /var/www/cms/index_2.html</nowiki> |
| - | + | ||
| === Ergebnis: === | === Ergebnis: === | ||
| Zeile 52: | 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 |

