我有一个包含以下数据的文件:
adam
humanities
castiel
sciences
antwon
sciences
dmitri
informatics
zoe
mathematics
bernard
economics
我希望能够根据人名对文件进行排序,以便输出如下所示:
adam
humanities
antwon
sciences
bernard
economics
castiel
sciences
dmitri
informatics
zoe
mathematics
cat 文件名 | sort
对包括主题在内的所有数据进行排序。如何根据人名对其进行排序?
最佳答案
在 awk 中使用 asorti 对数据数组进行排序
awk '{a[$1]=$2} END {n=asorti(a,c);for (i=1;i<=n;i++) print c[i] "\n" a[c[i]] "\n"}' RS= file
adam
humanities
antwon
sciences
bernard
economics
castiel
sciences
dmitri
informatics
zoe
mathematics
如果您的awk 没有asorti,试试这个:
awk '{print $1,$2}' RS="" file | sort | awk '{print $1 "\n" $2 "\n"}'
关于bash - 在 Bash 中按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18374545/