从文件中提取数据块

时间:2013-09-19 14:26:18

标签: awk

我有一个问题,肯定可以用awk单行解决。

我想将现有数据文件拆分为单独的文件,该文件由数据块组成。 数据文件具有以下形式:

1   1
1   2
1   3


2   1
2   2
2   3

3   1
3   2
3   3

我希望将每个数据块存储在一个单独的文件中,例如 - “1.dat”,“。dat”,“3.dat”,... 问题是,每个块没有特定的行号,它们只是由两个“新行”分隔。

提前致谢, 尔根

2 个答案:

答案 0 :(得分:4)

这应该让你开始:

awk '{ print > ++i ".dat" }' RS= file.txt

如果用两个“新行”表示两个换行符:

awk '{ print > ++i ".dat" }' RS="\n\n" file.txt

看看结果有何不同?设置null RS(即第一个示例)可能就是您正在寻找的。

答案 1 :(得分:1)

另一种方法:

awk 'NF != 0 {print > $1 ".dat"}' file.txt