我有一个管道分隔的文本文件,包含大约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
我想要做的是创建三个新文件:每个用户一个,只包含他们的数据.(例如,user1的文件只包含原始文件的第一行,第四行和第六行).我应该使用awk还是sed这样做?
单程:
awk -F "|" '{ print > $NF }' file
以下是结果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
此外,有些人喜欢添加文件扩展名.这可以这样做:
awk -F "|" '{ print > $NF ".txt" }' file