我正在使用awk来拆分二进制流,我可以将每个部分都放到这样的for循环中.
for(i = 1; i <= NF; i) 我不想将每个字段转换为文本或参数,而只是将其直接传递给命令. 我想找到这样的东西,for(i = 1; i< = NF; i)system(“decode”) 但这显然不起作用.解码没有输入. 如何进行解码以接收循环中的每个字段?
解决方法
这不适合你吗?
for(i=1;i<=NF;i++) print $i | "decode" close("decode")
它将每个字段(或您的情况下的字节)发送到连接到“decode”程序的管道.
之后,关闭“解码”管道以强制刷新该管道上的所有数据.
您可以在https://www.gnu.org/software/gawk/manual/html_node/Redirection.html上阅读有关gawk重定向的更多信息
如果要对每个字节执行“decode”,只需在每次迭代中关闭管道:
for(i=1;i<=NF;i++) { print $i | "decode" close("decode") }