2

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

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

1   1
1   2
1   3


2   1
2   2
2   3

3   1
3   2
3   3

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

在此先感谢,于尔根

4

2 回答 2

4

这应该让你开始:

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

如果你的意思是两个“换行符”,两个换行符:

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

看看结果有何不同?设置一个空值RS(即第一个例子)可能是你要找的。

于 2013-09-19T14:30:04.263 回答
1

另一种方法:

awk 'NF != 0 {print > $1 ".dat"}' file.txt
于 2013-09-19T18:43:59.537 回答