如何解析文件名并使用shellscript将数据导入csv文件?

时间:2015-08-13 05:00:19

标签: matlab shell csv

我有一个Matlab程序将一些数据输出到文件名中,例如文件名看起来像

Temperature_10_Volumn_5.dat

文件内部是空的,但我需要解析10和5.我有1000个这样的文件。什么是最容易解析数字并将它们写入csv文件的shellcript,以便Matlab可以读取csv文件并绘制图形?谢谢!

1 个答案:

答案 0 :(得分:1)

以下是将所有值打印在单个文件中的脚本,其值以“;”

分隔

用法是:

parse_file.sh /home/user/your_dir_to_files output.csv

#!/bin/bash
#title         :parse_file.sh
#description   :parse file name into a single file
#author        :Bertrand Martel
#date          :13/08/2015

file_list=`ls $1`

IFS=$'\n'     #line delimiter

#empty your output file
cp /dev/null "$2"

for i in $file_list; do

    #get temperature between _ and _
    temperature=`echo $i | awk -v FS="([_]|[_])" '{print $2}'`

    #remove everything before Volumn
    second_part=`echo $i | sed 's/.*Volumn//'`

    #get volume between _ and .
    volume=`echo $second_part | awk -v FS="([_]|[.])" '{print $2}'`

    new_line="$temperature;$volume"

    #append to file
    echo $new_line >> "$2"
done

cat "$2"

我用文件https://gist.github.com/akinaru/fd68c0373af35eaba934

创建了一个要点

我假设您在目录输出中只有所谓的文件