Bash 从一个awk命令设置多个变量?
这是一个非常常见的脚本:Bash 从一个awk命令设置多个变量?,bash,awk,Bash,Awk,这是一个非常常见的脚本: #!/bin/bash teststr="col1 col2" var1=`echo ${teststr} | awk '{print $1}'` var2=`echo ${teststr} | awk '{print $2}'` echo var1=${var1} echo var2=${var2} 但是我不喜欢这样,尤其是当有更多的字段需要解析时。 我想应该有更好的方法,比如: (var1,var2)=`echo${teststr}awk'{print$1$
#!/bin/bash
teststr="col1 col2"
var1=`echo ${teststr} | awk '{print $1}'`
var2=`echo ${teststr} | awk '{print $2}'`
echo var1=${var1}
echo var2=${var2}
但是我不喜欢这样,尤其是当有更多的字段需要解析时。
我想应该有更好的方法,比如:
(var1,var2)=`echo${teststr}awk'{print$1$2}'
(在我的想象中)
是这样吗?
感谢您提供帮助,以提高效率并节省一些CPU电源。这可能适合您:
var=(col0 col1 col2)
echo "${var[1]}"
col1
Bash支持数组,我们只需要动态提供值:)
Bash数组文档:您还可以使用shell
set
内置来将空格分隔(或者更准确地说,如果是IFS
separated)放入变量$1
,$2
,依此类推:
#!/bin/bash
teststr="col1 col2"
set -- $teststr
echo "$1" # col1
echo "$2" # col2
谢谢你提醒我参加舞会。这就是解决办法。你也可以这样写:var=(
echo${blablabla}awk-F“{print$1”“$3}”
)。。。
#!/bin/bash
teststr="col1 col2"
set -- $teststr
echo "$1" # col1
echo "$2" # col2