Grep

grep 或 sed 查找大於給定數量的整數值?

  • December 3, 2015

這是參考另一個問題:如何使用 robocopy 遞歸地列出超過一定大小的所有文件?

我想解析命令的輸出(或 cat 日誌文件)並找到一個字元串值,將其轉換為整數,然後查看該整數值是否大於給定整數。

例如,給定以下行:

     *EXTRA File          78223    C:\_Google.Enterprise.Contract.2010-06-01.pdf

我想將“78223”與“10485760”進行比較。這可以用 grep 或 sed 嗎?

謝謝!

使用awk如下:

$ echo '*EXTRA File     78223    C:\foo.pdf' | awk '$3 > 1048576 {print $0;}'
$ echo '*EXTRA File     78223    C:\foo.pdf' | awk '$3 > 40000 {print $0;}'
*EXTRA File     78223    C:\foo.pdf

另外 - 如果您使用的是類 Unix 使用者空間(如 UnxUtils 或 Cygwin,如果您在 Windows 上),您可以使用find參數-size直接獲取文件列表,然後通過管道傳輸到 xargs 並執行任何操作試圖處理選定的文件。

您的問題(有趣的比較和其他操作)的一般答案確實是 awk 或 bash(使用 bc)或 perl - 但具體情況適合find.

引用自:https://serverfault.com/questions/307723