awk或sed创建新文件?

Meg*_*ane 3 awk sed

我有一个管道分隔的文本文件,包含大约900行数据.每行包含一组在末尾带有用户名的数字.例如

2792|5750|125|4.0|0.25|||6|2|user1
2802|6000|126|4.0|0.25|||2|3|user2
2801|6000|125|4.0|0.25|||4|4|user2
2805|5500|125|4.5|0.25|||3|2|user1
2805|6250|122|4.5|0.25|||4|7|user3
2811|4750|125|3.0|0.25|||4|2|user1
2828|5750|121|4.0|0.25|||6|2|user2
Run Code Online (Sandbox Code Playgroud)

我想要做的是创建三个新文件:每个用户一个,只包含他们的数据.(例如,user1的文件只包含原始文件的第一行,第四行和第六行).我应该使用awk还是sed这样做?

Ste*_*eve 7

单程:

awk -F "|" '{ print > $NF }' file
Run Code Online (Sandbox Code Playgroud)

以下是结果grep . user*:

user1:2792|5750|125|4.0|0.25|||6|2|user1
user1:2805|5500|125|4.5|0.25|||3|2|user1
user1:2811|4750|125|3.0|0.25|||4|2|user1
user2:2802|6000|126|4.0|0.25|||2|3|user2
user2:2801|6000|125|4.0|0.25|||4|4|user2
user2:2828|5750|121|4.0|0.25|||6|2|user2
user3:2805|6250|122|4.5|0.25|||4|7|user3
Run Code Online (Sandbox Code Playgroud)

此外,有些人喜欢添加文件扩展名.这可以这样做:

awk -F "|" '{ print > $NF ".txt" }' file
Run Code Online (Sandbox Code Playgroud)