如何使用awk将字段分隔符作为空行,记录分隔符和双空行

如何使用awk将字段分隔符作为空行,记录分隔符和双空行,awk,Awk,我想在awk中将字段分隔符作为空行,将记录分隔符作为双空行来提取文本文件的第一个和第三个字段,如下所示: 1. Lorem ipsum dolor sit am Lorem1 asdds f fgb g Lorem ipsum1 dsfdff 2. Lorem ipsum dolor sit am Lorem2 dfdg g gh hf Lorem ipsum2 Lorem ipsum dolor sit 1.同侧阴唇 洛雷姆1 asdds f fgb g Lorem ip

我想在awk中将字段分隔符作为空行,将记录分隔符作为双空行来提取文本文件的第一个和第三个字段,如下所示:

1. Lorem ipsum dolor sit am Lorem1 asdds f fgb g Lorem ipsum1 dsfdff 2. Lorem ipsum dolor sit am Lorem2 dfdg g gh hf Lorem ipsum2 Lorem ipsum dolor sit 1.同侧阴唇 洛雷姆1 asdds f fgb g Lorem ipsum1 dsfdff 2.同侧阴唇 洛雷姆2 dfdg g gh hf Lorem ipsum2 同侧阴唇 因此,我得到的结果是:

lorem1 Lorem ipsum1 lorem2 Lorem ipsum2 lorem1 Lorem ipsum1 lorem2 Lorem ipsum2
假设您的文件看起来像:

1. Lorem ipsum dolor sit am

Lorem1

asdds f fgb g

Lorem ipsum1

dsfdff


2. Lorem ipsum dolor sit am

Lorem2

dfdg g gh hf

Lorem ipsum2

Lorem ipsum dolor sit
然后,您的awk看起来像:

awk 'BEGIN{RS="\n\n\n"; FS="\n\n"}{print $2,$4}' yourfile.txt
Lorem1 Lorem ipsum1
Lorem2 Lorem ipsum2

如果您可以控制生成该文件的内容,那么直接支持使用空行分隔记录,使用换行符分隔字段(至少由GNU awk支持):我简化了我的文本并减少了它的内容,以适合放在这个网站上。但是我的真实文本是由多行的段落组成的,每一行用一个空行分隔,每一条记录也用两个空行分隔。我想这样就可以了。这里的字段分隔符是两个换行字符
/n
,本质上是一个空行。记录分隔符为三个换行字符(双空行)。这应该行得通,我知道这个例子行得通。但是如果我们有一个文本,而不是一行用空行分隔,我们将有2或3行用空行分隔。顺便说一下,谢谢你的回答。这里是我的文件的链接,这两行或三行将被视为一个字段,因为需要两个换行符才能移动到下一个字段。这就是你想要的吗?基本上,每个段落都是一个单独的字段,由一个空行分隔的多个段落将是同一“行”的一部分,两个空行将表示一个新行