übergeben Sie grep in einer Variablen in der bash

Habe ich eine Datei namens email.txt wie diese ein :

Subject:My test
From:my email <myemail@gmail.com>

this is third test

Möchte ich nur die E-Mail-Adresse in dieser Datei mithilfe von bash-Skript.Also ich habe diese script in meinem bash-Skript "myscript" einfügen:

#!/bin/bash

file=$(myscript)

var1=$(awk 'NR==2' $file)

var2=$("$var1" | (grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'))

echo $var2

Aber ich konnte, um dieses Skript auszuführen.Wenn ich diesen Befehl manuell in der bash kann ich erhalten Sie die E-Mail-Adresse:

echo $var1 | grep -Eio '\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b'

Muss ich die E-Mail-Adresse zu speichern in einer variable, damit ich Sie in anderer Funktion.Kann mir jemand zeigen, wie dieses problem zu lösen?
Danke.

  • Haben Sie versucht echo $file um sicherzustellen myscript wirklich gibt den Inhalt aus email.txt?
  • jup..das habe ich schon getan.Die $ - Datei haben, die genaue Zeile und Inhalte, die ich will, um grep und es können echo ohne problem
  • Im Falle der From: Linie ist nicht auf der Linie 2: awk -F : '$1 == "From" {print $2; exit}' "$file"
InformationsquelleAutor newbie.my | 2012-06-12
Schreibe einen Kommentar