在 bash 中对文件的每一行运行命令,将行作为标准输入传递

在 bash 中对文件的每一行运行命令,将行作为标准输入传递

如何将一些输入逐行传递给命令行(即对每一行调用命令)?

xargs不起作用,因为它将行作为参数传递,而不是作为标准输入。

出现这种情况的具体情况是解码一个以 base64 编码的字符串为行的文件。

答案1

可以用while循环完成:

produce | while IFS= read -r line; do echo "$line" | process; done | consume

(对于一些任意的produceprocessconsume命令,它们都使用标准输入/输出)但是没关系。必须有一种更优雅的方式来做到这一点。

相关内容