我有一个Matlab程序将一些数据输出到文件名中,例如文件名看起来像
Temperature_10_Volumn_5.dat
文件内部是空的,但我需要解析10和5.我有1000个这样的文件。什么是最容易解析数字并将它们写入csv文件的shellcript,以便Matlab可以读取csv文件并绘制图形?谢谢!
答案 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
创建了一个要点我假设您在目录输出中只有所谓的文件