sip
23.01.14, 16:13
Hallo zusammen
Brauche eure Hilfe, verzweifle fast...
Muss aus einer grossen csv Datei mit HTML Inhalt E-Mail Adresse und Name, Vorname auslesen. Das ganze auf Unix mit Bash...
Nun habe ich es geschafft alle E-Mail Adressen auszulesen und zwar mit folgendem code:
Quelltext | Drucken
#/bin/bash if [ -f "$1" ]; then grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' "$1" | sort | uniq -i >>'/script/result/adressen-$(date "+%d-%m-%Y").csv' else echo "Expected a file at $1, but it doesn't exist." >&2 exit 1 fi
#/bin/bash
if [ -f "$1" ]; then
grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' "$1" | sort | uniq -i >>'/script/result/adressen-$(date "+%d-%m-%Y").csv'
else
echo "Expected a file at $1, but it doesn't exist." >&2
exit 1
fi
nun fehlt mir noch der Name und Vorname der Person.
Der HTML Code sieht ungefähr immer gleich aus:
Quelltext | Drucken
<td valign=""top""> <p class=""Untertitel"">Vorname Name</p> <p class=""Ueberschrift3"">blabla</p> <p class=""Haupttext""> </p> <p class=""Haupttext"">Adresse</p> <p class=""Haupttext"">PLZ Ort</p> <p class=""Haupttext"">Tel</p> <p class=""Haupttext"">Mobile</p> <p class=""Haupttext"">E-Mail Adresse</p> </td>
<td valign=""top"">
<p class=""Untertitel"">Vorname Name</p>
<p class=""Ueberschrift3"">blabla</p>
<p class=""Haupttext""> </p>
<p class=""Haupttext"">Adresse</p>
<p class=""Haupttext"">PLZ Ort</p>
<p class=""Haupttext"">Tel</p>
<p class=""Haupttext"">Mobile</p>
<p class=""Haupttext"">E-Mail Adresse</p>
</td>
Struktur: Name und Vorname sind immer im <p class=""Untertitel""></p>, jedoch sind auch solche Untertitel einträge vorhanden die nichts mit dem zu tun haben.
Da nicht wirklich eine genaue Struktur zu erkennen ist und im nachhinein erkennlich sein soll welcher Name zu welcher Adresse gehört funktioniert das laut einem Kollegen nicht mit meinem grep Script...
Ich hatte schon für dieses kleine Script ein ganzen Tag da ich Neuling bin und wäre sehr dankbar wenn mir jemand helfen könnte...
Vielleicht gibt es ja eine Lösung wie such mit regex oder sowas nach der E-Mail Adresse und geh dann zurück zum 1 Untertitel und nimm den Namen...
Brauche eure Hilfe, verzweifle fast...
Muss aus einer grossen csv Datei mit HTML Inhalt E-Mail Adresse und Name, Vorname auslesen. Das ganze auf Unix mit Bash...
Nun habe ich es geschafft alle E-Mail Adressen auszulesen und zwar mit folgendem code:
Quelltext | Drucken
#/bin/bash if [ -f "$1" ]; then grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' "$1" | sort | uniq -i >>'/script/result/adressen-$(date "+%d-%m-%Y").csv' else echo "Expected a file at $1, but it doesn't exist." >&2 exit 1 fi
#/bin/bash
if [ -f "$1" ]; then
grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' "$1" | sort | uniq -i >>'/script/result/adressen-$(date "+%d-%m-%Y").csv'
else
echo "Expected a file at $1, but it doesn't exist." >&2
exit 1
fi
nun fehlt mir noch der Name und Vorname der Person.
Der HTML Code sieht ungefähr immer gleich aus:
Quelltext | Drucken
<td valign=""top""> <p class=""Untertitel"">Vorname Name</p> <p class=""Ueberschrift3"">blabla</p> <p class=""Haupttext""> </p> <p class=""Haupttext"">Adresse</p> <p class=""Haupttext"">PLZ Ort</p> <p class=""Haupttext"">Tel</p> <p class=""Haupttext"">Mobile</p> <p class=""Haupttext"">E-Mail Adresse</p> </td>
<td valign=""top"">
<p class=""Untertitel"">Vorname Name</p>
<p class=""Ueberschrift3"">blabla</p>
<p class=""Haupttext""> </p>
<p class=""Haupttext"">Adresse</p>
<p class=""Haupttext"">PLZ Ort</p>
<p class=""Haupttext"">Tel</p>
<p class=""Haupttext"">Mobile</p>
<p class=""Haupttext"">E-Mail Adresse</p>
</td>
Struktur: Name und Vorname sind immer im <p class=""Untertitel""></p>, jedoch sind auch solche Untertitel einträge vorhanden die nichts mit dem zu tun haben.
Da nicht wirklich eine genaue Struktur zu erkennen ist und im nachhinein erkennlich sein soll welcher Name zu welcher Adresse gehört funktioniert das laut einem Kollegen nicht mit meinem grep Script...
Ich hatte schon für dieses kleine Script ein ganzen Tag da ich Neuling bin und wäre sehr dankbar wenn mir jemand helfen könnte...
Vielleicht gibt es ja eine Lösung wie such mit regex oder sowas nach der E-Mail Adresse und geh dann zurück zum 1 Untertitel und nimm den Namen...