沒有。 grep是一個過程。你正在談論從小孩到父母的環境傳播。這是禁止的。
相反,你可以做
DATA=($your_line)
然後採取name=DATA[0]
如此往復。
或用awk另一種方式:
eval "`echo $your_line | awk '
function escape(s)
{
gsub(/'\''/,"'\''\"'\''\"'\''", s);
s = "'\''"s"'\''";
return s;
}
{
print "name="escape($1);
print "family_name="escape($2);
print "website="escape($3);
print "email="escape($4);
print "date="escape($5);
}'`"
這裏的感覺是通過標準輸出來傳播信息,並在父環境EVAL它。
注意,在這裏,轉義函數會正確地轉義任何字符串,以至於任何東西都不會被錯誤地解釋(如引號的邪惡)。
以下是我的傑西輸出:
name='John'
family_name='Smith'
website='www.website.com'
email='[email protected]'
date='jan-01-2001'
如果姓O'Reilly
中,eval結果仍然是正確的:
name='John'
family_name='O'"'"'Reilly'
website='www.website.com'
email='[email protected]'
date='jan-01-2001'
做'域= $(回聲Website.com | grep的-Po ...'); echo $ domain'。祝你好運。 – shellter
沒有。 'grep'是一個過程。你正在談論從小孩到父母的環境傳播。這是禁止的。相反,你可以做'DATA =($ your_line)',然後'name = DATA [0]'來回。 – HuStmpHrrr