Ich habe eine Datei wie diese eine mit dem Namen email.txt:vorbei grep in eine Variable in bash
Subject:My test
From:my email <[email protected]>
this is third test
Ich möchte mithilfe von bash in dieser Datei Adresse nur die E-Mail nehmen script.So ich dieses setzen Skript in meinem bash-Skript myscript genannt:
#!/bin/bash
file=$(myscript)
var1=$(awk 'NR==2' $file)
var2=$("$var1" | (grep -Eio '\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b'))
echo $var2
Aber ich konnte diese script.When ich diesen Befehl manuell in bash laufen laufen ich die E-Mail-Adresse erhalten:
echo $var1 | grep -Eio '\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b'
Ich muss die E-Mail-Adresse in eine Variable speichern, damit ich sie in anderer Funktion verwenden kann. Kann mir jemand zeigen, wie ich dieses Problem lösen kann? Danke.
Haben Sie versucht, 'Echo file' $ sicher' machen myscript' wirklich den Inhalt von email.txt zurückkehrt? – flesk
@flesk yup..Ich habe das schon gemacht. Die $ Datei hat die genaue Zeile und Inhalt, die ich grep und es kann ohne Problem echo –
Falls die 'From:' Zeile ist nicht in Zeile 2: 'awk -F: '$ 1 == "Von" {print $ 2; exit} '"$ file" ' –