Bash 重定向错误

Bash 重定向错误,bash,scripting,Bash,Scripting,我试图在一些文件的第二列中找到平均值。 文件名具有以下模式 例如: 其他文件名可以通过使用oter变量pmb、xhpl等替换变量file获得。。 这是我写的剧本。。 有人能找出错误并告诉我吗 #!/bin/bash for file in pmb_mpi tau xhpl mpi_tile_io fftw ; do for f in "2.54" "1.60" "800" ;do if [ ${f} = 2.54 ] then for order in

我试图在一些文件的第二列中找到平均值。 文件名具有以下模式 例如:

其他文件名可以通过使用oter变量pmb、xhpl等替换变量file获得。。 这是我写的剧本。。 有人能找出错误并告诉我吗

#!/bin/bash
for file in pmb_mpi tau xhpl mpi_tile_io fftw ; do
    for f in "2.54" "1.60" "800" ;do
    if [ ${f} = 2.54 ]
    then 
        for order in even odd ; do
        echo ${file}_${f}_${order}_v1.xls
        awk 'sum+=$2 ;END {print "Average = " , $sum/NR > ${file}_${f}_${order}_avrg.xls }' ${file}_${f}_${order}_v1.xls
        done
    else
        echo ${file}_${f}_v1.xls 
        awk 'sum+=$2 ;END {print "Average = " , $sum/NR > ${file}_${f}_avrg.xls }' ${file}_{f}_v1.xls
    fi

    done
done

我马上看到的一个问题是,在
awk
脚本中有一个带变量“sum”的美元符号

将其更改为删除美元符号。其中一行将如下所示:

        awk 'sum+=$2 ;END {print "Average = " , sum/NR > ${file}_${f}_${order}_avrg.xls }' ${file}_${f}_${order}_v1.xls

我马上看到的一个问题是,在
awk
脚本中有一个带变量“sum”的美元符号

将其更改为删除美元符号。其中一行将如下所示:

        awk 'sum+=$2 ;END {print "Average = " , sum/NR > ${file}_${f}_${order}_avrg.xls }' ${file}_${f}_${order}_v1.xls

在else子句中,您在awk的输入文件名中遗漏了一个美元符号

#-------v----------
${file}_${f}_v1.xls

在else子句中,您在awk的输入文件名中遗漏了一个美元符号

#-------v----------
${file}_${f}_v1.xls

如果您的xls文件是电子表格,我认为您通常无法使用awk读取它们。 您应该在此处使用perl模块将xls转换为一些方便的文件格式,如csv:


现在您可以在csv文件上使用awk。

如果您的xls文件是电子表格,我认为您通常无法使用awk读取它们。 您应该在此处使用perl模块将xls转换为一些方便的文件格式,如csv:


现在你可以在csv文件上使用awk了。

我得到了答案。这是密码

#!/bin/bash

用于pmb_mpi tau xhpl mpi_tile_io fftw中的文件;做

for f in 2.54  1.60 800 ; do

if [ ${f} = 2.54 ]
then 
    for order in even odd ; do
printf“\n${file}${f}${order}{u v1.xls”>>Safe/P-state-summary.xls printf“\n${file}\u${f}\u v1.xls”>>Safe/P-state-summary.xls 完成


重定向awk输出时出现问题。谢谢大家的宝贵建议

我得到了答案。这是密码

#!/bin/bash

用于pmb_mpi tau xhpl mpi_tile_io fftw中的文件;做

for f in 2.54  1.60 800 ; do

if [ ${f} = 2.54 ]
then 
    for order in even odd ; do
printf“\n${file}${f}${order}{u v1.xls”>>Safe/P-state-summary.xls printf“\n${file}\u${f}\u v1.xls”>>Safe/P-state-summary.xls 完成


重定向awk输出时出现问题。谢谢大家的宝贵建议

谢谢大家纠正了这个错误。但是错误似乎出现在awk命令中。。当我评论awk命令时,脚本没有显示任何错误。感谢您纠正了这个错误。但是错误似乎出现在awk命令中。。当我评论awk命令时,脚本没有显示任何错误。感谢您纠正了这个错误。错误似乎出现在awk命令中。。当我评论awk命令时,脚本没有显示任何错误。感谢您纠正了这个错误。错误似乎出现在awk命令中。。当我评论awk命令时,脚本没有显示任何错误。