我有一个文件,它的格式为:
Thread1.Action1, wahhhhhh
Thread1.Action1, blahhhhhh
Thread1.Action2, wooooooo
Thread1.Action2, weeeeeee
Thread1.Action2, baaaaaaa
Thread2.Action1, mooooooo
Thread2.Action2, wooooooof
我需要做的是:
写一个文件,其中文件名是逗号前的第一位。然后,该文件应包含与之关联的所有行。例如:在这种情况下应该有4个文件:Thread1.Action1.out,Thread1.Action2.out,Thread2.Action1.out和Thread2.Action2.out
例如, Thread1.Action2.out 应包含:
Thread1.Action2, wooooooo
Thread1.Action2, weeeeeee
Thread1.Action2, baaaaaaa
Thread2.Action1.out 应包含:
Thread2.Action1, mooooooo
等。
注意:我希望它与第一列的名称无关 - 例如:在执行脚本之前,我不一定知道第一列中的数据是什么,但是会有一些组......
我想编写一个能够执行此操作的bash脚本。我已经尝试在awk中做了一些,但它变得非常混乱。
任何帮助?
答案 0 :(得分:7)
awk -F, '{print > $1".out"}' your_file
您的评论:执行以下命令同时创建所有目录:
awk -F. '{print $1}' your_file | sort -u | xargs mkdir
现在执行以下命令:
awk -F, '{split($1,a,".");print >a[1]"/"$1".out"}' your_file