我试图返回使用以下代码创建文件的月份列表。

ls -l|awk '{A[$6":"]++}END{for (i in A){print i" "A[i]}}'

我使用下面的代码来验证每个输出。
ls -la | grep -c "Jan"

但是从我的输出中可以看到:
: 1
Jan: 19
Feb: 11
Mar: 28
Apr: 10
May: 14
Jun: 24
Jul: 4
Aug: 16
Sep: 10
Oct: 30
Nov: 4
Dec: 1

Output of ls|grep
我最后得到一张没有日期的唱片。而且一月和十二月都少了1。有人能帮忙吗?

最佳答案

您可以使用awksort这样做

$ ls -l | awk '$6!=""{m[$6]++}END{for(i in m){printf "%s : %s%s",i,m[i],ORS }}' | sort -k1M
Jan : 7
Mar : 1
Apr : 8
Aug : 2

问题是ls -l的第一行没有包含month字段

关于linux - Linux按属性分组和计数文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48478580/

10-10 11:31