按字母顺序排序到不同的文件中

按字母顺序排序到不同的文件中

我有一个按字母顺序排序的文件。这很简单:cat {some file} | sort > {newfile}

但是,我需要按字母顺序排序,按文件中的第三列,每个字母将进入其自己的文件。

所以:a.txt、b.txt、c.txt等等......

有什么可能的方法来编写这个脚本吗?

答案1

sort file | awk '{print > substr($0, 3, 1) ".txt"}'

将把每一行打印到一个文件中,该文件的名称是该行的第三个字符,后跟.txt.

答案2

扩展@StephaneChazelas 帖子

sort -k1.3 | awk '{print > substr($0, 3, 1) ".txt"}'

实际上将从右边的第三个字符开始对行进行排序。换句话说,在执行sortbefore操作时,它将忽略每行的前两个字符awk

相关内容