带有输入块的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>