想使用Shell腳本對某文本檔案中無序的一列數字排序并輸出求和結果,文本如下所示:
4
2
1
3
50
一開始使用的命令只能輸出求和結果,不能同時給出排序結果:
sort -nr t3.txt | awk '{sum+=$1} END {print "sum="sum}'
該命令輸出sum=60,無排序結果,原因是sort命令的輸出僅僅通過管道傳遞給了awk命令,而沒有輸出到標準輸出,這里需要同時向管道和標準輸出進行輸出操作,
首先想到了tee命令,該命令可以從標準輸入讀入資料,并輸出到標準輸出和檔案,
這里還需要借用標準錯誤輸出來輸出排序后的結果,代碼如下:
sort -nr t3.txt | tee /dev/stderr | awk '{sum+=$1} END {print "sum="sum}'
這是一個簡單的示意圖,

這樣就實作了題目的需求,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/445262.html
標籤:Linux
上一篇:linux學習之shell腳本
