将字段提取到变量

时间:2011-07-01 03:07:01

标签: bash

我想将一行中的字段提取为变量:

aaa bbb ccc

'aaa'=> $ a,'bbb'=> $ b,'ccc'=> $ C。如何在bash中做到这一点?

我不想管道处理,只需要将它们提取到变量或数组。

2 个答案:

答案 0 :(得分:6)

您可以这样做:

read a b c <<<"aaa bbb ccc"

输出

$ echo "a=[$a] b=[$b] c=[$c]"
a=[aaa] b=[bbb] c=[ccc]

根据bash手册:

   Here Strings
       A variant of here documents, the format is:
              <<<word
       The word is expanded and supplied to the command on its standard input.

答案 1 :(得分:4)

最简单的是:

read a b c

从正在读取行的位置进行I / O重定向:

while read a b c
do
    # Process
done < $some_file

如果数据已经在变量中,那么您可以使用:

read a b c < <(echo "$variable")

这使用特定于Bash的功能,即进程替换。