對於linux的中的一些問題,一般地我們可以通過以下的思路來解決:
1)使用linux提供的很多的小工具和管道來處理;
2)如果需要使用多條命令,或需要邏輯判斷,考慮使用sh,sh除了能直接使用linux的小工具外,還可以進行很多的邏輯和流程控制;
3)如果需要很多的字串處理,問題也比較複雜,考慮使用perl,在perl中可以方便地呼叫linux的小工具,但是又不缺強大的字串處理能力;
4)最後如果可以稱的上是乙個小的專案的問題,使用python,python與高階語言更加相似,更易於閱讀和維護;
例如對於問題:修改乙個目錄和子目錄下的所有的*.log為*.log
1) 使用linux的小命令
查詢到所有的*.log檔案:find . -iname '*.log' -type f -print
替換得到新的檔名:echo $filename | sed s/\.log$/\.log/i
修改檔案的名字:mv $oldname $newname
2) 轉化為sh指令碼(csh)
#!/bin/csh -x
cd $1
set files = `find . -iname '*.log' -type f -print`
foreach f ($files)
if ( $f !~ "*.log") then
set newf = `echo $f | sed s/\.log\$/\.log/i`
mv $f $newf
endif
end3) 牛逼作法
使用使用一條命令加sh的while來實現:
find . -iname '*.log' -type f -print | while read fname; do echo mv $fname $; done | bash -x
完!
PHP從命令列接收引數
昨天,在牛客網做華為機試題,不太熟悉它的環境,吃了大虧。測試樣例是通過標準輸入輸入的,執行結果是通過標準輸出輸出的。標準輸入就是鍵盤,標準輸出就是顯示器。經過大量實踐,發現fscanf 最好用,沒有之一!mixed fscanf resource handle,string format mixed...
C語言從命令列接收引數
設包含如下程式的檔名為myprog.c編譯後輸入命令 myprog how are you則執行結果是 include int main int argc,char argv argc是命令列總的引數個數,如 c users kang desktop main.exe myprog how are ...
用Git Bash從命令列啟動Sublime
找到sublime所在的目錄。一般 是c program files sublime text 2 sublime text.exe。要測試這個 在git bash中 執行dir c program files sublime text 2 或者是dir c program files sublim...