如何在awk中为每个循环执行命令?

前端之家收集整理的这篇文章主要介绍了如何在awk中为每个循环执行命令?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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")
}

猜你在找的Linux相关文章