Shell指令碼: Windows下可用原始碼 轉換為 Linux下可用原始碼
簡介
Windows下編寫的程式碼(如C\C++\Java等)放到Linux下不能直接編譯, 因為主要存在兩個問題:
1. Windows和Linux的行尾符不同, Windows下行尾符是"\n\r", 而Linux的行尾符是"\n"
2. Windows下編碼通常是GB2312, 而Linux中的編碼通常是UTF-8。
所以編寫了這個指令碼檔案用於將Windows下編寫的原始碼轉化為Linux下可用的原始碼,
該指令碼檔案可以將 指定目錄及其子目錄 下指定 字尾名 的原始檔進行轉換。
使用方式
sudo apt-get install dos2unix bash trans.sh 指定資料夾 要轉換檔案的拓展名
例如,
將/home資料夾及其子檔案下所有java原始檔進行轉換
bash trans.sh /home java
程式碼
#!/bin/bash #Program: # convert the text written in windows to the text usable in linux. #Author: # Chen Zhongzheng #History: # 2014年09月03日20:17:36 v1.0 #TODO: # add a parameter to specify the origin encoding, eg. gb2312\cp936\gbk... function recursion() { cd $1 for i in $(ls) do if [ -d "$i" ]; then recursion $i $2 elif [ "${i##*.}" = "${2}" ]; then iconv -f cp936 -t utf-8 $i > temp_111 mv temp_111 $i dos2unix $i fi done cd .. } if [ ! $# -eq 2 ]; then echo "usage: bash convert.sh directory_name extension_name" elif [ ! -d $1 ]; then echo "usage: bash convert.sh directory_name extension_name" else recursion $1 $2 fi
#!/bin/bash #Program: # convert the text written in windows to the text usable in linux. #Author: # Chen Zhongzheng #History: # 2015年12月04日21:33:29 v1.1 #TODO: # add a parameter to specify the origin encoding, eg. gb2312\cp936\gbk... function recursion() { cd $1 for i in $(ls) do if [ -d "$i" ]; then recursion $i $2 elif [ "${i##*.}" = "${2}" ]; then enca -L zh_CN -x UTF-8 $i dos2unix $i fi done cd .. } if [ ! $# -eq 2 ]; then echo "usage: bash convert.sh directory_name extension_name" elif [ ! -d $1 ]; then echo "usage: bash convert.sh directory_name extension_name" else recursion $1 $2 fi
參考:
相關推薦
Shell指令碼: Windows下可用原始碼 轉換為 Linux下可用原始碼
簡介 Windows下編寫的程式碼(如C\C++\Java等)放到Linux下不能直接編譯, 因為主要存在兩個問題: 1. Windows和Linux的行尾符不同, Windows下行尾符是"\n\r", 而Linux的行尾符是"\n" 2. Windows下編碼通常是G
shell指令碼:以一定規律替換某個目錄下某些檔案中的某個字串
題目有些繞,看例子: 我要替換/home/zql/replace_string/目錄下的以10,20,30開頭的檔案中的字串中的某些字串 這些檔案中有pv_centos欄位,如圖10_1k中內容擷取如
shell指令碼:awk和sed
awk 和sed cut [選項] 檔名 預設分隔符是製表符 選項: -f 列號: 提取第幾列 &
shell指令碼:函式以及除錯
自定義函式 [ function ] funname [()] { <程式> } &nb
shell指令碼:流程控制語句
if/else 命令連線符: 單個分支if條件語句 if[ 條件判斷 ] then <程式> fi 或者 if[ 條件判斷 ]; then <程式> fi 多分支 if[ 條件判斷 ]; then <程式> el
shell指令碼:命令
命令連線符 ;表示不管前面是否執行成功都要執行 &&表示前面執行成功才執行後面 ||表示前面執行失敗才執行後面 read命令 read [選項] 值 read -p(提示語句) -n(字元個數) -t(時間秒) -s(不顯示) 運算子 expr 3 +
shell指令碼:變數
首行:#!/bin/bash #!符號能夠被核心識別成為一個指令碼的開始,這一行必須位於指令碼的首行 註釋:# 除去第一行的# 內容:可執行結構和內容 建立檔案的方式: touch echo “” > first.sh 注:向檔案輸入””中的內容 > 是覆蓋
shell指令碼:統計分析 /home/ 目錄使用者磁碟使用情況
一、統計單臺機器 /home/ 目錄下磁碟空間使用 top3 的使用者 common.sh 指令碼用於統計 /home/* 目錄下儲存空間 top3 的使用者。 du -sb /home/* |sort -nr |head -n 3 #單位為B 二、統計分析多臺分散式機器上 /h
一個簡單的shell指令碼:一鍵部署tomcat及釋出簡單程式指令碼
測試環境中一鍵部署的一個小指令碼,這裡記錄下,方便想聯絡的人進行參考 環境介紹: 作業系統cos7.4 jdk版本:1.8 中介軟體服務版本:tomcat7.0.75 ——————————————以下是指令碼內容—————————————————————————
一個簡單的shell指令碼:weblogic日誌按天生成(日誌壓縮)
編寫目的: 在實際工作中,由於生產環境在出現問題的時候,中介軟體服務會出現大量的報錯日誌,若日誌增長量極大的情況下,會出現磁碟空間被寫滿的情況而導致宕機,為了防止此情況出現,編寫如下shell指令碼進行規避此問題。 注意: <一>本例已weblogi
shell 指令碼: 多執行緒判斷多個程序是否存在,不存在則重啟
shell 預熱 shell 中變數用 $ 區別 在shell指令碼中變數賦值等號前後不能有空格,有空格會被認為是命令 str='測試' echo $str arr=('test1' 'test2' 'test3') # 陣列, 每個元素間以空格隔開 echo
Shell指令碼:人機互動指令碼-su
本文演示通過expect工具實現su命令自動輸入密碼驗證的方法。 1、 su.sh指令碼實現 指令碼實現功能:使用者切換,執行完成之後進入新使用者介面。 #####################
python呼叫Shell指令碼:os.system(cmd)或os.popen(cmd)的區別
兩者的區別是: os.system(cmd)的返回值只會有0(成功),1,2 os.popen(cmd)會吧執行的cmd的輸出作為值返回。 python呼叫Shell指令碼,有兩種方法:os.system(cmd)或os.popen(cmd),前者返回值是指令碼的退出
shell指令碼:base64加密、解密字串並賦值給變數方法
幾經波折才能夠實現使用 base64 加密、解密字串並賦值給變數。網上絕大多數是使用 echo 管道實現 加密和解密字串的輸出。 程式碼如下: pwd=$( base64 -d <<< MQo= ) # 解碼 in=$( base64 <&l
Shell指令碼:程式控制
條件測試的表示式: [ expression ] 括號兩端必須要有空格 [[ expression ]] 括號兩端必須要有空格 test expression組合測試條件: -a: and -o: or !: 非 整數比較: -eq 測試
shell指令碼不暫停程序,暫停幾秒執行下一條shell命令
需求如下: 跑monkey指令碼如果遇到異常結束,則使用logcat輸出日誌,輸出三秒後停止輸出 如果使用sleep 命令的話,則會導致logcat在sleep的時候也暫停執行了 解決方法如下,通過while迴圈暫停3秒: ti1=`date +%s` #獲取時間戳
使用Windows上SourceInsight工具建立分析Linux下uboot原始碼工程
SourceInsight軟體可以說是分析查閱大型原始碼工程檔案的神器!介面不錯!功能強大! 第一步:安裝好SourceInsight後開啟軟體 點選上面的Project--->new pro
shell指令碼:批量修改檔名(刪除檔名中字元)
上一篇寫過批量修改檔名(檔名中新增字元),工作中還存在這樣的需求,批量修改檔名,刪除檔名中的某些字元; 舉例如下:批量改名,刪除檔名中多餘字元 目錄下檔名為如下,要求去掉_finished。 stu_102999_1_finished.jpg stu_10
Shell指令碼:人機互動指令碼-scp
前面兩篇博文中,為大家演示了shell指令碼中su和ssh命令的免驗證輸入實現: 本文將進一步演示,通過expect工具實現scp命令免密輸入的方法。 Expect開源軟體安裝,請
python和shell指令碼:微信企業號傳送資訊
#!/usr/bin/python # coding: utf-8 import urllib,urllib2 import json import sys def gettoken(corpid,corpsecret): gettoken_url = 'https://qyapi.wei