Linux

用於查找和計算所有文件中的字元總數的 Shell 腳本

  • February 5, 2015

如何製作一個腳本來查找主目錄中小於 3 天的每個文件,然後計算所有這些文件中的字元總數?

這很簡單:

find ~/ -mtime -3 -exec cat {} + | wc -c

上面發送計數每個文件中每個字元的wc計數。

如果文件很大,以上將涉及大量從磁碟讀取。如果簡單地添加文件的大小會更有效。獲取文件大小的方法因 Unix 版本而異。但是,如果您的系統支持 linux 風格的stat命令,則以下命令將起作用:

find . -mtime -3 -type f -exec stat -c%s {} + | awk '{total+=$1} END{print total}'

在上面,stat -c%s返回每個文件的大小awk並將它們相加並報告總數。這消除了完全讀取每個文件的需要。

find,catwc: _

find ~ -type f -mtime -3 -exec cat {} + | wc -c
  • -mtime檢查修改時間。根據您的作業系統和文件系統,創建時間並不容易獲得。修改時間是一個合理的折衷方案。-3表示少於 3 天(相對於+3)。其實是72小時。
  • -type f- 將自己限制在正常文件中。
  • -exec cat {} +- 呼叫cat每個匹配的文件,
  • wc -c:列印字元數。因為我們有來自所有cats 的組合輸出,所以這是總數。

引用自:https://unix.stackexchange.com/questions/183038