今天工做在處理批量查詢的統計需求,因爲原始數據是從execl拷貝的文本,經過shell去分析這批數據。等待好久後去取結果,發現查詢導出後的數據爲空,這下鬱悶至極(還有不少事情要作)。首先質疑shell腳本把全部執行記錄的sql語句都echo到一個文本中發現全部導出來的每條查詢記錄都被分紅兩行,剛開始還沒意識到^M的惹的禍,反反覆覆去調整shell腳本,以至於將shell腳本改爲負擔最重的全記錄搜索,沒加任何條件。(也許是太多事情壓着要作,那時腦子不夠冷靜沒有去抓問題主因),問題依舊沒獲得解決,崩潰。最後單獨拿出一條記錄出來分析,仔細一看echo出來的sql記錄有^M,無語。。。。。。(我怎麼會把^M這個問題給忽視了,真應該自我鄙視下,難道莫不是總要吃次虧)。最後打緊sed -i 「s/^M//g」替換掉,從新開搞。感嘆本身最近一段時間的狀態的確很差,總是感受很煩躁,是真須要調節下。
在網上又搜索到一篇將UNIX和WINDOWS間的換行轉換的文章,學習補充下:
語法
dos2unix [-kn] file [newfile] 從DOS轉換到UNIX
unix2dos [-kn] file [newfile] 從UNIX轉換到DOS也就是WINDOWS
-k : 保留該文檔原來的 mtime 時間 (不更新文檔上次內容通過修改的時間)
-n : 保留原來的文檔,將轉換後的內容輸入到新文檔中 例如: dos2unix -n old new
範例以下:sql
$cat -v killws #!/bin/bash^M admin_dir="/home/admin"^M function check_user {^M if [[ `whoami` != "admin" ]];then^M echo "Apache only can start by admin user,exit!"^M exit^M fi^M }^M $dos2unix -k killws dos2unix: converting file killws to UNIX format ... $cat -v killws #!/bin/bash admin_dir="/home/admin" function check_user { if [[ `whoami` != "admin" ]];then echo "Apache only can start by admin user,exit!" exit fi }
還有一種轉換方法:
直接 vim file 輸入set ff=unix.保存退出!shell
——————End——————vim