我做了这段代码,如果你不插入任何列,而不是打印“请插入列”,我希望打印所有列的最小值、最大值和平均值,就好像你已经在 incial 代码中插入了所有内容一样。
我试着写
if["$col"=""]; then $col=`seq 5 20`
但它不起作用。请问有什么帮助吗??
谢谢!
#!/bin/bash
for arg; do
case "$1" in
-[0-9]*) col+="${1#-}"",";;
-g) shift
gene="$1";;
[a-z]*) file="$1";;
esac
shift
done
echo col="$col" gene="$gene" file="$file"
OLDIFS=$IFS
IFS=",";
echo "$col"
if ["$col" == ""];
then echo "Insert columns please"
else
for i in $col; do
echo
echo minim columna "$i"= `grep "$gene" "$file" | tr -s ' ' ' ' |tr -s ',' '.' | cut -d ' ' -f"$i" | sort -n | head -1`
echo maxim columna "$i"= `grep "$gene" "$file" | tr -s ' ' ' ' |tr -s ',' '.' | cut -d ' ' -f"$i" | sort -n | tail -1`
echo average columna "$i"= `grep "$gene" "$file" | tr -s ' ' ' ' |tr -s ',' '.' | cut -d ' ' -f"$i" | awk '{sum+=$1} END {print sum/NR}'`
shift
done
fi
IFS=$OLDIFS