【问题标题】:Creating a .csv in a Bash Shell Script在 Bash Shell 脚本中创建 .csv
【发布时间】:2023-05-21 13:55:01
【问题描述】:

我正在尝试在 Bash shell 脚本中生成一个 .csv 文件。请考虑以下代码:

#!/bin/bash

for f1 in *_8_kHz.wav
do
   for f2 in *_8_kHz.wav
   do
      # echo "pesq +8000 $f1 $f2"
      echo -n `pesq +8000 $f1 $f2 | grep Prediction | rev | cut -b1-5 | rev`
   done

   echo
done

当然,除了每一行都以逗号结尾之外,这也是可行的。这是示例输出:

4.500,1.029,1.651,1.475,1.698,1.706,
1.550,4.500,1.477,1.148,1.788,1.478,
1.251,0.958,4.500,1.472,2.091,1.800,
0.961,1.154,1.550,4.500,1.702,1.501,
1.194,0.974,1.356,1.206,4.500,1.626,
0.857,0.960,1.091,1.064,2.012,4.500,

省略那些尾随逗号的最有效方法是什么?

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    以下是否足够有效?

    echo -n `pesq +8000 $f1 $f2 | grep Prediction | rev | cut -b1-5 | rev` | sed 's/,$//'
    

    它正在使用sed 删除行尾$ 之前的最后一个,

    【讨论】:

      【解决方案2】:

      来自https://*.com/a/18262725/2796606

      foo=`pesq +8000 $f1 $f2 | grep Prediction | rev | cut -b1-5 | rev`
      
      echo -n ${foo%?}
      

      【讨论】: