我有一个输入流,我想“映射”到输出行.例如,如果我的输入流是文件nums,我想要这种语法
$cat nums 9534 2343 1093 7023 $cat nums | map ./myscript $0
相当于
$echo 9534 | ./myscript $echo 2343 | ./myscript $echo 1093 | ./myscript $echo 7023 | ./myscript
解决方法
我认为xargs与您的假设地图最接近:
cat nums | xargs -n1 ./myscript
要么
cat nums | xargs -n1 -J ARG ./myscript ARG
要么
cat nums | xargs -I ARG ./myscript ARG
不幸的是,xargs不允许你调用从stdin读取的东西,因此你必须重写脚本以接受命令行参数而不是从stdin读取.