Ho un file chiamato email.txt come questi uno:passando grep in una variabile in bash
Subject:My test
From:my email <[email protected]>
this is third test
voglio prendere solo l'indirizzo e-mail in questo file utilizzando bash script.So ho messo questo scritto nel mio script bash chiamato MyScript:
#!/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
Ma non è riuscito a eseguire questo script.When ho eseguito questo comando manualmente in bash posso ottenere l'indirizzo e-mail:
echo $var1 | grep -Eio '\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b'
Ho bisogno di mettere l'indirizzo di posta elettronica per memorizzare in una variabile in modo da poterlo usare in un'altra funzione. Qualcuno mi mostra come risolvere questo problema? Grazie.
Hai provato 'echo $ file' per assicurarsi' myscript' davvero restituisce il contenuto da email.txt? – flesk
@flesk yup..ho già fatto. Il file $ ha la riga esatta e il contenuto che voglio grep e può echo senza problemi –
Nel caso in cui la riga 'From:' non sia sulla linea 2: 'awk -F: '$ 1 == "Da" {stampa $ 2; exit} '"$ file" ' –