我想将一行中的字段提取为变量:
aaa bbb ccc
'aaa'=> $ a,'bbb'=> $ b,'ccc'=> $ C。如何在bash中做到这一点?
我不想管道处理,只需要将它们提取到变量或数组。
答案 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的功能,即进程替换。