Bash脚本根据内容写入文件

时间:2013-12-12 10:20:02

标签: bash awk

我有一个文件,它的格式为:

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中做了一些,但它变得非常混乱。

任何帮助?

1 个答案:

答案 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