他のファイルをアルファベット順に並べ替える

他のファイルをアルファベット順に並べ替える

アルファベット順にソートされたファイルがあります。簡単: cat {some file} sort > {newfile}

ただし、ファイルの3番目の列に基づいてアルファベット順にソートする必要があり、各文字は独自のファイルに保存されます。

したがって:a.txt、b.txt、c.txtなど...

これをスクリプトで書く方法はありますか?

答え1

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

名前が行の3番目の文字で、その後に続くファイルに各行を印刷します.txt

答え2

@StephaneChazelas 投稿を展開

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

行は実際には右から3番目の文字からソートされます。つまり、sort前の操作を実行するときは、各行の最初の2文字を無視しますawk

関連情報