我该如何解析这个字符串?

时间:2014-01-27 04:41:22

标签: linux grep

我有字符串“http://example.com http://example2.com”我如何将它们变成两个不同的变量?

我对Linux很新。 谢谢,所有的帮助表示赞赏。

4 个答案:

答案 0 :(得分:2)

使用for循环

str="http://example.com http://example2.com"
for word in $str
do
    echo $word
done

答案 1 :(得分:2)

自发地,我不会使用grep,而是read

EXAMPLE="http://example.com http://example2.com"
read URL1 URL2 <<<"$EXAMPLE"

<<<语法假定您正在使用Bash。否则,你必须这样做:

read URL1 URL2 <<EOF
$EXAMPLE
EOF

答案 2 :(得分:2)

其他答案都很棒,但有很多方法可以解决这个问题,所以这是另一个。 :-)由于你的字符串是以空格分隔的,而你的shell的默认分隔符(IFS)包含空格,你可以利用这个:

mystr="http://example.com http://example2.com"
set -- $mystr
foo=$1    # http://example.com
bar=$2    # http://example2.com

(在此实例中并非严格要求--之后的set,但如果您的字符串由于某种原因恰好以短划线开头,它会阻止发生一些愚蠢的事情。)

答案 3 :(得分:2)

作为我之前的一个替代答案,您还可以使用以下语法,该语法应该适用于所有标准shell:

EXAMPLE="http://example.com http://example2.com"
URL1="${EXAMPLE%% *}"
URL2="${EXAMPLE#* }"

您可以查看Bash / Dash联机帮助页以获取有关其工作方式的更多信息。