-2

私はそのように構築された行を持つファイルを持っています

yyyy-mm-dd hh-mm-ss * -start *
yyyy-mm-dd hh-mm-ss * -end *  

最も一般的な「-mm-ss」をカウントして並べ替えて印刷する正規表現を作成するのを手伝ってくれる人はいますか?*によって私は任意の文字列を意味します

4

2 に答える 2

1
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
于 2013-02-26T09:50:44.370 に答える
0
$ 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
于 2013-02-26T09:59:25.580 に答える