我写了一个小的 shell scipt,但我的 if 语句无法正常工作。
我正在通过一个文件(14380 行和 134 列)运行 while 循环,并且我想按照条件在某些行上做一些工作 number in column 4 > 6 and number in column 4 < 7
。第 4 列中的数字是一个实数,我知道 if 语句只对整数进行操作。这是我的问题吗?我认为 if 语句会将我的数字读取get_lon
为整数,例如。get_lon=14.824
它会读为get_lon=14
. 那样就好了。很长一段时间后,它没有给出错误消息,但它没有按照我的意愿过滤数据。现在文件的所有行都在通过测试。
#!/bin/bash/sh
ulimit -s unlimited
datafile=$1
wfno=0
cat $datafile | while read line
do
wfno=`expr $wfno + 1`
echo $wfno
get_lon=`awk '(NR=='$wfno'){print $4}' $datafile`
echo $get_lon
if test ["$get_lon" > "6" -a "$get_lon" < "7"]
then
awk '(NR=='$wfno'){for(i=7;i<=NF;i++){print i-7, $i;}}' $datafile > xy
echo 'awk done '
some more stuff...
else
echo "Line not valid"
fi
done
请问,有人可以帮忙吗?