IFS=$'\n' for i in `grep "@" *-Dec2006 |grep -w "To:" |grep -vE '(X-Confirm-Reading-To:|Disposition-Notification-To:) do echo "this is the line: $i" emailfile=$(echo "$i" |awk -F : '{print $1}') echo "emailfile = $emailfile" IFS=" " for b in $(echo "$i" |awk -F To: '{print $2}' |sed s/\\\//""/g) do echo "Filename: $emailfile Email add: $b" sed '3s/.*/To: $b/g' $emailfile done IFS=$'\n' done unset IFS #my problem is $b inside that for loop cant pass the value inside that "sed '3s/.*/To: $b/g' $emailfile" line any help?