带有输入块的Awk/perl调用命令

带有输入块的Awk/perl调用命令,perl,awk,Perl,Awk,我有一个名为processor.sh的脚本来处理stdin。它处理一个行块,如下所示: address: abc phone: 123 user: def 假设我有以下文件: address: a1 phone: p1 user: u1 address: a2 phone: p2 user: u2 address: a3 phone: p3 user: u3 我想多次调用processor.sh,每个块调用一次,并将文本块原样提供给它的stdin 我知道这可以通过使用类似的方法拆分成临时

我有一个名为
processor.sh
的脚本来处理stdin。它处理一个行块,如下所示:

address: abc
phone: 123
user: def
假设我有以下文件:

address: a1
phone: p1
user: u1

address: a2
phone: p2
user: u2

address: a3
phone: p3
user: u3
我想多次调用
processor.sh
,每个块调用一次,并将文本块原样提供给它的stdin

我知道这可以通过使用类似的方法拆分成临时文件来实现。我希望避免创建临时文件,即仅使用管道

是否有一种简短的方法(即可以合理地称为单行程序的方法)来实现这一点?

使用
awk

$ awk -v RS= '{cmd="processor.sh"; 
               print | cmd; 
               close(cmd)}' file

一个优点是,只要至少有一个空行分隔记录,记录的长度就可以不同。

perl-MIPC::Run=Run-00ne'Run[“processor.sh”],“不带
IPC::Run的替代方法”
perl-00-ne'打开我的$fh,“\124;-”,“processor.sh”或die$!;打印$fh$\ucode>