awkを使用してファイルに単語インデックスを作成するには?

awkを使用してファイルに単語インデックスを作成するには?

を使用する必要がある課題に問題がありますawk。このスクリプトは、ファイル内の単語のみをアルファベット順に出力し、その後に:スペースを入れてから、単語が表示されるカンマ区切りの行のリストを出力します。たとえば、

C
CB
92A 
A
BFG How Are You 
B Are 
C 
C Are
.
.B

しなければならない

A: 3, 4
Are: 5, 6, 8
B: 6, 10
BFG: 5
C: 1, 7, 8
CB: 2
How: 5
You: 5

私はこれを試しましたが、成功しませんでした。

#!/bin/awk -f
{
split($0, char);
print $0;
sort;
}

答え1

努力する:

$ awk '
{
  gsub(/[^[:alpha:] ]/,"");
  for(i=1;i<=NF;i++) {
    a[$i] = a[$i] ? a[$i]", "FNR : FNR;
  }
}
END {
  for (i in a) {
    print i": "a[i];
  }
}' file | sort 
A: 3, 4
Are: 5, 6, 8
B: 6, 10
BFG: 5
C: 1, 7, 8
CB: 2
How: 5
You: 5

関連情報