希望有人可以帮助我提高我的awk命令效率!
假设我的文本文件大约有30行这类东西:
ENTIRE:11.3.28.4.0
OSVER:Solaris11
VARFREE:3G
我将这些变量分配给bash脚本中的变量,如下所示:
ENTIRE=$(awk -F\: '$1 ~ /ENTIRE/ {print $2}' $HOSTFILE)
RELEASE=$(awk -F\: '$1 ~ /RELEASE/ {print $2}' $HOSTFILE)
OSVER=$(awk -F\: '$1 ~ /OSVER/ {print $2}' $HOSTFILE)
因为我有大约30个,这意味着awk运行30次,这很慢,显然不是最佳方式。
有人可以建议我如何将这些构建成一个awk命令吗?
提前致谢!
答案 0 :(得分:1)
您根本不需要awk
。如果不能修改原始文件,请使用while
循环和declare
命令来定义每个变量。
while IFS=: read name value; do
declare "$name=$value"
done < "$HOSTFILE"
一个例子:
$ IFS=: read name value <<< "foo:bar"
$ declare "$name=$value"
$ echo "$foo"
bar