=======问题已解 回馈code给大家以后用=========
感谢各位大大细心的分享跟教导,这只小script分享给
之后跟我一样有大量xlsx转csv的人,使用方法只要
sh script.sh "存取资料夹"
便会把你该资料夹所有xlsx转成csv档
但记得要装 python的xlsx2csv
参考: sudo pip install xlsx2csv
========ˇscript============
#!/bin/bash
# this script have dependence package of Python "xlsx2csv"
sudo PATH =
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:~/bin
sudo export PATH
sudo echo "Start translate !"
mkdir $1
for f in `ls -1 *.xlsx`
do
xlsx2csv $f $1/${f%.*}.csv;
echo ${f%.*}
done
echo "Translation done"
~
==============================================
由于对linux 的bash一些比较特殊的写法还不是那么熟练
想跟各位linux先进请教一个写bash时的问题
想做的事情是:
用bash的方式进行xlsx转档,这里我呼叫了一个python
工具 xlsx2csv , 这个用法在 terminal时已经确定可以
使用 , 而且转换效果很好
遇到的问题:
1. 一直出现中文档名乱码问题 , 原始档案是big5没错
2. 不确定这么写能不能像teminal一样直接叫到python
的xlsx2csv
错误范例:
========================================================================
#!/bin/bash
PATH = /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
sudo echo "Start translate !"
sudo xlsx2csv 2011某中文档名.xlsx Test_covert/2011某中文档名.csv
echo "Translation done"
=======================================================================
这只是我在做初步测试用bash 仿制我在terminal做的行为,且在terminal已经确定
会有我要的结果 , 但bash上面我一直没有确切的方向,查也都只查到bash的一般语法
会需要这么做主要是会批量转档的需求,所以后续还要串loop还有让档名重新产生
用过一般的批量转档程式但出来的结果是资料 "看起来" 没有任何问题,但一旦经过
任何程式呼叫后 , 会有大量的资料在呼叫过程中无故遗失,而用command line呼叫手转
的资料则没有这问题
虽然可以另外写python code直接做这件事情,但目前我试过最快且最稳的是command line
这个方法,加上很想知道如果我在 bash 里面要呼叫非一般shell的程式还有做字串重组
跟commnad重新产生 (有点像eval 但我还不确定bash叫什么) , 对小弟来说算是一个有趣
的应用,想问各位先进是否有做过这件事情 ???