Vortrag Regular Expressions
Aus GNU/Linux User Group Kaiserslautern
Inhaltsverzeichnis |
Exkurs bzgl.
Frage zum tar-Befehl:
Was passiert mit tar-ball beim auspacken, wenn Benutzer nicht im System existieren, denen im tar-Ball die Dateien zugeordnet sind?
Sascha sagt Dateien werden mit ids erzeugt, denen jedoch keine User im System zugeordnet sind.
tar
tar [OPTION]... [DATEI]...
-t, --list
Inhalt eines Archivs anzeigen
-x, --extract, --get
Dateien aus Archiv holen
-c, --create
neues Archiv erzeugen
-p, --same-permissions
Zugriffsrechte beim Auspacken erhalten
-l, --one-file-system
beim Erzeugen Dateisystem nicht wechseln
-f, --file=ARCHIV
Gerät oder Datei ARCHIV benutzen
Mit dem Befehl
tar cplf dateisystem_dev_hda2.tar
wird ein tar-Ball erzeugt (c), das den Dateien die gleichen Rechten erhält (p), der tar-Befehl bleibt in dem aktullem Dateisystem, und betrifft z.B. keine gemounteten Dateisysteme (l) und schreibt es in den tar-Ball mit dem Namen hda2.tar (f).
Sehr cooler Befehl zum Kopieren von ganzen Dateisystemen
cd /mnt/ && ( cd / && tar cplf - . ) | tar xpvf -
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 "
| \2\<\/td\>\ | \3.\4.\5\<\/td\>\<\/tr\>/' >> /var/www/cms/index_2.html & & ==== 3. Schritt ==== echo " |
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>
1. Schritt
echo "
| /g' sed -e 's/^/\ | ||||||
| /' sed -e 's/$/\<\/td\>\<\/tr\>/' >> /var/www/cms/index.html && '''ergibt''' DE;Rosenmontag;19;2;2007;0;0 | ||||||
| DE | Rosenmontag | 19 | 2 | 2007 | 0 | 0 |
Ergibt folgende Tabellenausgabe:
| DE | Name | Tag | Monat | Jahr | 0 | 0 |

