我用来sed -n START_LINE,FINISH_LINEp filename > newfile
从文本文件中提取指定范围的文本,例如sed -n 45,50p datafile > newfile
.
如何使用它来提取始终由相同文本模式边框的多个文本部分?例如,我想要提取的文本始终从 39 行开始,Subject:?????
并在 之前立即结束Start Date: ??/??/??
。
答案1
虽然这本身并不能回答您的问题,但awk
有一个优雅的解决方案。
$ awk '
# Set start variable
/Subject/ { start=NR + 39; }
# Disable print condition below
/Start Date/ { start=""; next; }
# Print while line is greater than start
NR > start && start
' someFile.txt