[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

BASH Shell Script: Variable zerlegen



Hallo NG!

Ich versuche gerade mir ein Script zu schreiben, dass vom User die Eingabe einer eMail-Adresse verlangt (z.B. test@domain.com) und in einer Variable speichert. Intern soll diese Variable dann zerlegt werden, so dass ich eine neue Variable mit Username (test) und eine mit der Domain (domain.com) erhalte.

Mein Problem ist nun, dass ich nicht genau weiß, ob dies ohne Weiteres in der BASH möglich ist. Mit PHP als Script-Sprache könnte ich einfach explode() benutzen, doch möchte ich versuchen, das ganze mit BASH-Mitteln zu realisieren.

Ich dachte dabei an grep bzw egrep.
Ich habe mir nun einen Regulären Ausdruck geschrieben, der (meiner Meinung nach :-)) eine eMail-Adresse erkennt und dann auf den Domainteil matcht:

(?<=((\w)+\.)+@)([a-zA-Z0-9_-]+\.)+[a-zA-Z0-9]{2,4}

Teste ich das ganze mit solchen RegEx-Tools, klappt das auch soweit, jedoch scheinee ich das ganze nicht in ein Shellscript umbiegen zu können.

Hab mir eine Datei erstellt, in der nur eine eMail Adresse steht und dazu folgendes Script:

#!/bin/bash
VAR=`cat testfile | egrep '(?<=((\w)+\.)+@)([a-zA-Z0-9_-]+\.)+[a-zA-Z0-9]{2,4}'`
echo $VAR

Leider funktioniert das nicht so, wie geplant -> die Variable scheint leer zu sein. Stimmt mein egrep Aufruf nicht (auch schon mit " an Stelle der ' probiert) oder liegt das Problem woanders? In der man page von grep finde ich nichts passendes.

Freue mich über nützliche und hilfreiche Tipps! :-)

Danke und Gruß,

Markus Wetzel

PS.: Das Ganze soll später wenn es geht ohne temporäre Datei funktionieren...



Reply to: