微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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")
}

原文地址:https://www.jb51.cc/linux/394216.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐