我有像这样构建的文件
yyyy-mm-dd hh-mm-ss * -start *
yyyy-mm-dd hh-mm-ss * -end *
谁能帮我建立正则表达式来计算最常见的“-mm-ss”并将它们排序打印?* 我的意思是任何字符串
awk '{split($2,a,"-");b[a[2]"-"a[3]]++}END{for(i in b)print i,b[i]}' your_file
测试:
> cat temp
yyyy-mm-dd hh-11-55 * -start *
yyyy-mm-dd hh-11-55 * -start *
yyyy-mm-dd hh-12-22 * -end *
> nawk '{split($2,a,"-");b[a[2]"-"a[3]]++}END{for(i in b)print i,b[i]}' temp
12-22 1
11-55 2
>
下面是先打印所有 hh-mm 然后打印所有 mm-ss 的命令:
awk '{split($2,a,"-");b[a[2]"-"a[3]]++;c[a[1]"-"a[2]]++}END{for(i in c)print i,c[i];for(i in b)print i,b[i]}' your_file
$ cat tmp
yyyy-mm-dd hh-11-55 * -start *
yyyy-mm-dd hh-11-55 * -start *
yyyy-mm-dd hh-12-22 * -end *
$ cut -c 15-19 tmp | sort | uniq -c
2 11-55
1 12-22