我有一个包含多项选择答案的问题的文件。
每个问题的第一行以010
开头。
每个问题的最后一行以小写e
开头。
我需要将每个匹配输出到一个单独的文件中。
sed -n '/010/,/e)/p' FileName
上面的sed命令显示了我需要的信息。我怎么能将每个匹配输出到自己的文件?第一个文件应命名为1
,并在下一个匹配时递增1。
答案 0 :(得分:3)
sed无法做到这一点,但是awk可以。
awk -v RS="010" 'NR > 1 {print RS $0 > (NR-1)}' filename
RS
定义了记录分隔符(通常是换行符),NR
是当前记录号。我添加了NR>1
条件,因为文件以记录分隔符开头,第一条记录将是它之前的空字符串。