Tente:
$ 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
Eu tenho um problema com meu dever de casa Eu preciso criar um script de shell usando awk
. O script produzirá apenas as palavras no arquivo em ordem alfabética e depois a palavra será :
depois disso, em seguida, uma lista separada por vírgula das linhas nas quais a palavra aparece. Por exemplo:
C
CB
92A
A
BFG How Are You
B Are
C
C Are
.
.B
Deve ser
A: 3, 4
Are: 5, 6, 8
B: 6, 10
BFG: 5
C: 1, 7, 8
CB: 2
How: 5
You: 5
Eu tentei isso, mas não funcionou
#!/bin/awk -f
{
split($0, char);
print $0;
sort;
}
Tente:
$ 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
Tags text-processing awk