在bash裡面呼叫外部程式還有重組字串? - Linux

By Frederic
at 2016-01-27T17:38
at 2016-01-27T17:38
Table of Contents
=======問題已解 回饋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叫什麼) , 對小弟來說算是一個有趣
的應用,想問各位先進是否有做過這件事情 ???
--
感謝各位大大細心的分享跟教導,這隻小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叫什麼) , 對小弟來說算是一個有趣
的應用,想問各位先進是否有做過這件事情 ???
--
Tags:
Linux
All Comments

By Faithe
at 2016-01-28T10:20
at 2016-01-28T10:20

By Donna
at 2016-01-31T05:17
at 2016-01-31T05:17

By Irma
at 2016-02-05T01:47
at 2016-02-05T01:47

By Ethan
at 2016-02-06T18:56
at 2016-02-06T18:56

By Kama
at 2016-02-09T11:14
at 2016-02-09T11:14

By Hedda
at 2016-02-10T11:34
at 2016-02-10T11:34

By Faithe
at 2016-02-11T07:34
at 2016-02-11T07:34

By George
at 2016-02-12T04:17
at 2016-02-12T04:17

By Joseph
at 2016-02-14T07:22
at 2016-02-14T07:22

By Ina
at 2016-02-15T17:38
at 2016-02-15T17:38

By Oscar
at 2016-02-18T01:26
at 2016-02-18T01:26

By Brianna
at 2016-02-19T15:58
at 2016-02-19T15:58

By Audriana
at 2016-02-21T12:03
at 2016-02-21T12:03

By Agnes
at 2016-02-23T01:38
at 2016-02-23T01:38

By Necoo
at 2016-02-24T10:10
at 2016-02-24T10:10

By Necoo
at 2016-02-26T03:04
at 2016-02-26T03:04

By Tristan Cohan
at 2016-02-26T05:10
at 2016-02-26T05:10

By Christine
at 2016-02-27T21:01
at 2016-02-27T21:01

By Tristan Cohan
at 2016-03-03T18:58
at 2016-03-03T18:58

By Jack
at 2016-03-04T14:04
at 2016-03-04T14:04

By Emily
at 2016-03-06T11:32
at 2016-03-06T11:32

By Mary
at 2016-03-06T23:50
at 2016-03-06T23:50

By Delia
at 2016-03-08T20:06
at 2016-03-08T20:06

By Jack
at 2016-03-13T01:47
at 2016-03-13T01:47

By Ingrid
at 2016-03-16T07:24
at 2016-03-16T07:24

By Isabella
at 2016-03-19T09:41
at 2016-03-19T09:41

By Charlie
at 2016-03-22T22:30
at 2016-03-22T22:30

By Joe
at 2016-03-25T12:39
at 2016-03-25T12:39

By Olivia
at 2016-03-29T06:57
at 2016-03-29T06:57

By Jessica
at 2016-04-03T03:03
at 2016-04-03T03:03

By David
at 2016-04-07T08:40
at 2016-04-07T08:40

By Edwina
at 2016-04-10T17:41
at 2016-04-10T17:41

By Harry
at 2016-04-11T09:39
at 2016-04-11T09:39

By Hazel
at 2016-04-15T22:36
at 2016-04-15T22:36

By Anonymous
at 2016-04-20T13:59
at 2016-04-20T13:59

By Harry
at 2016-04-24T04:40
at 2016-04-24T04:40

By Kelly
at 2016-04-25T06:44
at 2016-04-25T06:44

By Andy
at 2016-04-30T05:48
at 2016-04-30T05:48

By Susan
at 2016-05-05T04:26
at 2016-05-05T04:26

By Andrew
at 2016-05-07T11:19
at 2016-05-07T11:19

By Delia
at 2016-05-08T12:24
at 2016-05-08T12:24

By Zenobia
at 2016-05-09T06:23
at 2016-05-09T06:23

By Bethany
at 2016-05-11T19:53
at 2016-05-11T19:53

By Kama
at 2016-05-16T12:07
at 2016-05-16T12:07

By Ivy
at 2016-05-21T11:22
at 2016-05-21T11:22

By Belly
at 2016-05-21T19:04
at 2016-05-21T19:04

By Annie
at 2016-05-25T05:30
at 2016-05-25T05:30

By Daph Bay
at 2016-05-26T02:17
at 2016-05-26T02:17

By Irma
at 2016-05-26T14:42
at 2016-05-26T14:42

By Skylar Davis
at 2016-05-28T11:40
at 2016-05-28T11:40

By Annie
at 2016-05-29T04:25
at 2016-05-29T04:25

By Daph Bay
at 2016-05-29T05:30
at 2016-05-29T05:30

By Madame
at 2016-06-02T16:09
at 2016-06-02T16:09

By Suhail Hany
at 2016-06-06T18:08
at 2016-06-06T18:08

By Aaliyah
at 2016-06-06T20:47
at 2016-06-06T20:47

By Anthony
at 2016-06-11T07:19
at 2016-06-11T07:19

By Ida
at 2016-06-16T00:09
at 2016-06-16T00:09

By Agatha
at 2016-06-16T10:07
at 2016-06-16T10:07
Related Posts
nautilus rename 檔名消失

By Ina
at 2016-01-27T14:33
at 2016-01-27T14:33
chrome即將對linux停止更新???

By Christine
at 2016-01-26T21:31
at 2016-01-26T21:31
安裝I2C-tools相依關係失敗

By Oliver
at 2016-01-26T16:44
at 2016-01-26T16:44
怎麼取得連到AP的clients的SNR?

By Noah
at 2016-01-26T01:43
at 2016-01-26T01:43
能否推薦主機板?

By Gary
at 2016-01-25T20:28
at 2016-01-25T20:28