awk - 变得致命:在两个文件之间创建连接时尝试使用标量值作为数组错误
问题描述
我正在两个文件之间创建一个完整的外部连接,为此,我使用 awk 将两个文件记录存储在单独的数组中,然后稍后使用两个 for 循环打印它们。
awk 'FNR==NR{a[NR]=$0;next}{x=1;b[x]=$0;x=x+1} END{for(i in b[i]){for (j in a[j]) print b[i] "\t" a[j] "" }}' transpose.txt rows.txt
我得到的错误是这部分
END{for(i in b[i]){for (j in a[j]) print b[i] "\t" a[j] "" }}
我尝试在没有这部分的情况下运行代码,只打印 a[1] 和 b[1]。它能够这样做。但是当我在那里放两个 for 循环来打印两个的完整外连接时。我使用标量值作为数组得到这个数组操作系统!我在这里做错了什么?我得到的完整错误是
awk: cmd. line:1: (FILENAME=rows.txt FNR=176) fatal: attempt to use a scalar value as array
解决方案
不完全确定您的要求,尝试修复您的代码。请您尝试以下操作。
awk 'FNR==NR{a[FNR]=$0;next}{b[FNR]=$0} END{for(i in b){for (j in a) print b[i] "\t" a[j] }}' transpose.txt rows.txt
推荐阅读
- asp.net - 如何将类名或样式名添加到使用 SQL 'FOR XML' 生成的 HTML 标记中
- express - Sendgrid Next.js - React.js 和 Express.js - 获取数据的问题
- java - JxBrowser Java,Gradle 问题
- client-server - 关于“向后/向前兼容性”的语义
- javascript - 如果在函数中也修改了状态,则去抖动不起作用
- typescript - 从长字符串 Typescript 中删除特定字符
- python - 在单个单元格而不是单独的单元格中打印多个值
- python - 在python中按两个值排序。一升一降
- angular - 为什么每次到达 Angular 延迟加载模块下的页面时都会初始化 NgRx 存储?
- sql - 计算平衡体积的窗口函数