Bash

列出包含行數和日期的文件

  • June 28, 2016

我希望能夠列出顯示每個文件的行數和日期的文件。我可以很高興地使用wc -l *. 不是問題。我可以使用ls -l.

有沒有辦法結合這兩個命令給我一個列中的輸出?

這是帶有find++的wc東西date

find . -maxdepth 1 -exec sh -c '[ -f "$0" ] && \
 printf "%6s\t\t%s\t%s\n" "$(wc -l<"$0")" "$(date -r "$0")" "$0"' {} \;

代替date -r一個也可以使案例如stat -c%y

輸出如下所示:

  394      Thu Oct 16 22:38:14 UTC 2014    ./.zshrc
    7      Thu Oct 30 11:19:01 UTC 2014    ./tmp.txt
    2      Thu Oct 30 06:02:00 UTC 2014    ./tmp2.txt
   40      Thu Oct 30 04:16:30 UTC 2014    ./pp.txt

以此為起點,可以創建一個接受目錄和模式作為參數的函式:

myls () { find "$1" -maxdepth 1 -name "$2" -exec sh -c '[ -f "$0" ] && \
 printf "%6s \t\t%s\t%s\n" "$(wc -l<"$0")" "$(date -r "$0")" "$0"' {} \;; }

之後myls /tmp '*.png'將僅列出來自的圖像/tmp(注意模式周圍的單引號以防止 shell 擴展 glob 運算符*)。

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