将每个匹配从sed输出为单独的文件

时间:2016-02-22 00:59:17

标签: regex bash sed

我有一个包含多项选择答案的问题的文件。

每个问题的第一行以010开头。 每个问题的最后一行以小写e开头。

我需要将每个匹配输出到一个单独的文件中。

sed -n '/010/,/e)/p' FileName

上面的sed命令显示了我需要的信息。我怎么能将每个匹配输出到自己的文件?第一个文件应命名为1,并在下一个匹配时递增1。

1 个答案:

答案 0 :(得分:3)

sed无法做到这一点,但是awk可以。

awk -v RS="010" 'NR > 1 {print RS $0 > (NR-1)}' filename

RS定义了记录分隔符(通常是换行符),NR是当前记录号。我添加了NR>1条件,因为文件以记录分隔符开头,第一条记录将是它之前的空字符串。