awk 命令中使用外部定义的变量。

做好了的

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
for (( i = 1; i < 22; i++ ))
do 
	cijTempName=`cat $tempfile | gawk '$1 == loop {print $4}' loop=$i`
	
	if [ $i -ge 2 ] && [ $i -le 6 ]
	then
		if [ -z $cijTempName ]
		then
			echo -e "-\t\c"
		else
			echo -e $cijTempName"\t\c"
 		fi
	else
		if [ -z $cijTempName ]
		then
			echo -e "0\t\c"
		else
			echo -e $cijTempName"\t\c"
		fi
	fi

done

使用 awk(gawk 是 AWK 的 GNU 版本)获取每行第一个位置的元素,并与外面的 loop counter 比较,如果比配,则打印这一行中的 第四个元素,否则,1-6 loop 中打印 “-”,后面的打印 0。

关键点 gawk 中判断 $1 与 loop counter 如何处理。

格式:awk ‘{action}’ 变量名=变量值

这样传入变量,可以在action中获得值。 注意:变量名与值放到’{action}’后面。

如果要在 BEGIN 的action不能获得变量值,使用 参数 v,即是 awk -v 。这里没用到。

use-outer-variables-in-awk-1.jpg

use-outer-variables-in-awk-2.jpg

参考内容