linux shell 逐行讀取檔案行,

來源:互聯網
上載者:User

linux shell 逐行讀取檔案行,
讀取檔案行

  • for
    • 命令替換
    • 代碼塊重新導向
  • while
    • 管道符
    • 代碼塊重新導向
for
IFS=$'\n'for line in `ls -l`do    (( count++ ))doneecho $count

注意:
for讀取時,自動按空格作為間隔符。因此需要將IFS定義為按分行符號分隔

ls -l > forout.logmaxlength=$(wc -l < forout.log)for i in `seq $maxlength`do    (( count++ ))done < forout.logecho $count

注意:
wc 需要使用重新導向方式,否則輸出的格式是”行數 檔案名稱”。

while
while read line     do        (( count++ ))    done < readFile.log    echo $count

注意
如果while條件運算式沒有寫read,則會輸出line,但最後結果是一樣的

    cat readFile.log | while read line    do        #(( count++ ))        echo "$line"    done    #echo $count

注意
最後輸出的count是空值,感覺是因為一個管道符產生了一個子進程,而子進程的變數無法返回父進程

time

ime命令 用於 列印出一條命令或一個程式的執行時間
time 命令以秒為單位將一條命令執行期間所用的時間、系統時間和 time 命令的執行時間列印在標準錯誤中。
用法:time [ -p ] Command [ Argument … ]
time命令結果有三行組成:real、user和sys。我們這裡用的都是real值,CPU用時被劃分為user和sys兩塊。

  • real值表示從程式開始到程式執行結束時所消耗的時間,包括CPU的用時。
  • user值表示程式本身,以及它所調用的庫中的子常式使用的時間。
  • sys是由程式直接或間接調用的系統調用執行的時間。

測試上述四種方法
1.
real 0m0.022s
user 0m0.000s
sys 0m0.004s

2.
real 0m0.066s
user 0m0.004s
sys 0m0.016s

3.
real 0m0.001s
user 0m0.000s
sys 0m0.000s

4.
real 0m0.015s
user 0m0.000s
sys 0m0.008s

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.