使用Sed和下一个模式在两个模式之间提取线应该在mac

时间:2016-12-01 06:34:33

标签: macos design-patterns sed between extraction

我想提取两个引文之间的所有行。我想包括第一个包含引文的句子,并且应该在新引用时停止提取。此过程应持续到文件结束。我正在使用Mac。两个图案必须用空行或一些虚线分隔。这是我使用命令提取的输入数据(所有行都以新行显示。)

sed -n' /( [1-2] [0-9] {3})/,/ ^( [1-2] [0-9] {3 })/ p; / ^(* [1-2] [0-9] {3})/ q'

作者的任何个人偏见都必须进行对冲(Hyland,1995)。 负面情绪在政治上特别危险(Ziman,1968),并且一些作者已经记录了通过略微虚伪的赞美来预示批评的策略(MacRoberts和MacRoberts,1984)。 这使得识别这些意见的问题特别具有挑战性。 在其他类型中也观察到了这种非局部的情感表达(Wilson et al。,2009; Polanyi and Zaenen,2006)。

但我希望输出应该像这样

作者的任何个人偏见都必须进行对冲(Hyland,1995)。

负面情绪在政治上特别危险(Ziman,1968),并且一些作者已经记录了通过稍微不诚实的赞美来预示批评的策略(MacRoberts和MacRoberts,1984)。 这使得识别此类意见的问题特别具有挑战性。

这种情感的非局部表达也在其他类型中被观察到(Wilson等,2009; Polanyi和Zaenen,2006)。

1 个答案:

答案 0 :(得分:0)

如果你不坚持sed,那么awk就会容易得多:

BEGIN { RS="\\. +"; }
/\(.*\)/ { if (acc) { print acc "\n" }; acc = $0 "."; next; }
{ if (acc) { acc = acc " " $0 "." } else { print $0 "."; } }
END { if (acc) { print acc; } }