在Bash中按字母顺序排序

rah*_*huL 5 sorting bash awk sed

我有一个包含以下数据的文件:

adam
humanities

castiel
sciences

antwon
sciences

dmitri
informatics

zoe
mathematics

bernard
economics
Run Code Online (Sandbox Code Playgroud)

我希望能够根据人员的名字对文件进行排序,以便输出如下所示:

adam
humanities

antwon
sciences

bernard
economics

castiel
sciences

dmitri
informatics

zoe
mathematics
Run Code Online (Sandbox Code Playgroud)

cat filename | sort对包括主题在内的所有数据进行排序.我如何用人名来排序?

Jot*_*tne 6

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
Run Code Online (Sandbox Code Playgroud)

如果你的awk没有asorti,试试这个:

awk '{print $1,$2}' RS="" file | sort | awk '{print $1 "\n" $2 "\n"}'
Run Code Online (Sandbox Code Playgroud)