perl - 带有输入块的 awk / perl 调用命令
问题描述
我有一个称为processor.sh
处理标准输入的脚本。它处理一行行,如下所示:
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
多次调用,每个块一次,并将文本块按原样提供给它的标准输入。
我知道这可以通过使用类似这样的东西拆分成临时文件来完成。我希望避免创建临时文件,即仅使用管道。
是否有一种简短的(即可以合理地称为单线)的方法来做到这一点?
解决方案
perl -MIPC::Run=run -00ne'run [ "processor.sh" ], "<", \$_'
或者,如果您希望删除尾随行:
perl -MIPC::Run=run -00nle'run [ "processor.sh" ], "<", \"$_\n"'
推荐阅读
- python - 向模型添加外键字段时,字符串模型引用的形式必须为“app_label.ModelName”错误
- generics - 你如何像 itertools 那样用 collect_vec() 扩展一个特征?
- python - 增量函数如何不增加 num 变量?
- c# - ASP.NET Core Identity:[Authorize] 和用户空值检查之间的区别?
- python - 通过线程制作时,Tkinter 图像不显示
- google-sheets - 如何在 Google 表格上添加一个唯一的自动生成的数字,即使您添加和删除行也保持唯一?
- python - plotly.io.write_image 不保存图像
- r - R代码将调查数据(包括GPS)与最近的经纬度的温度数据合并,以及调查月份前12个月(光栅包?)
- dart - Dart:如何覆盖泛型方法?
- c - C - SHA256 生成不输出正确的哈希?