我有一个包含多项选择题的文件。
每个问题的第一行以 010
开头。
每个问题的最后一行以小写字母 e
开头。
我需要将每个匹配项输出到一个单独的文件中。
sed -n '/010/,/e)/p' FileName
上面的sed 命令显示了我需要的信息。我怎样才能将每个匹配项输出到它自己的文件中?第一个文件应命名为 1
并在下一次匹配时递增 1。
最佳答案
sed 不能这样做,但是 awk 可以。
awk -v RS="010" 'NR > 1 {print RS $0 > (NR-1)}' filename
RS
定义了记录分隔符(一般为换行符),NR
为当前记录号。我添加了 NR>1
条件,因为文件以记录分隔符开头,第一条记录将是它之前的空字符串。
关于regex - 将 sed 中的每个匹配项输出为单独的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35544209/