在bash shell上我使用命令
cat filename | cut -d, -f4 | sort -n | awk '
BEGIN {
c = 0;
sum = 0;
}
$1 ~ /^[0-9]*(\.[0-9]*)?$/ {
a[c++] = $1;
sum += $1;
}
END {
ave = sum / c;
if( (c % 2) == 1 ) {
median = a[ int(c/2) ];
} else {
median = ( a[c/2] + a[c/2-1] ) / 2;
}
OFS="\t";
print sum, c, ave, median, a[0], a[c-1];
}
'
从终端运行时,此工作正常 但是我的shell脚本在尝试在脚本中使用上述命令并运行脚本时显示awk用法。 我做了
#!/bin/sh
diffFile="del.csv"
x=$(cat $diffFile | cut -d, -f4 | sort -n | awk
'BEGIN {
c = 0;
sum = 0;
}
$1 ~ /^[0-9]*(\.[0-9]*)?$/ {
a[c++] = $1;
sum += $1;
}
END {
ave = sum / c;
if( (c % 2) == 1 ) {
median = a[ int(c/2) ];
} else {
median = ( a[c/2] + a[c/2-1] ) / 2;
}
OFS="\t";
print sum, c, ave, median, a[0], a[c-1];
}'
)
echo "$x"
但是这显示了运行脚本时的awk用法。我该如何解决这个问题。