我如何在 awk 或 csh 中按组打印?

How can i print by group in awk or csh?

大家好,我是 awk 和 cshell 的新手,谁能知道如何像那样按组打印输出? 我的输入文件:

A 1
A 2
A 3
AD 4
AD 5
B 6
B 7
B 8
B 9
A 10
AC 11
AC 12

如果在 $1 中有相同的输出,我想按组打印:

#########
#### A 
#########
1
2
3
10
#########
#### AD
#########
4
5
#########
#### B
#########
6
7
8
9
#########
#### AC
#########
11
12

我试过这个代码:

set my_sort = `cat input | awk '{print }' |sort |uniq`
foreach name ($my_sort)
       echo "##########"
       echo "#### $name"
       echo "##########"
       awk '/^'$name'/ {print [=12=]} input           # i want print all line to check
end

但输出不是我想要的:

#########
#### A 
#########
A 1
A 2
A 3
AD 4
AD 5
A 10
AC 11
AC 12
#########
#### AC
#########
AC 11
AC 12
#########
#### AD
#########
AD 4
AD 5
#########
#### B
#########
B 6
B 7
B 8
B 9

任何人都知道我的问题在哪里,如果可以使用 awk 我可以优化吗?谢谢大家,祝你有美好的一天

$ sort -k1,1 -k2,2n file |
    awk '!=prev{printf "########\n#### %s\n########\n", ; prev=} {print }'
########
#### A
########
1
2
3
10
########
#### AC
########
11
12
########
#### AD
########
4
5
########
#### B
########
6
7
8
9