awk - 如何使用 awk 将 2 个文件合并为第三个文件?
问题描述
谁能告诉我我做错了什么?我有 2 个要合并的文件,从第一个文件中获取信息并将其放入第二个文件,创建第三个文件。
文件 1:
1111-22-33 | 44:55:66 | 7777=8888 | AAAA | BBBB CCCC | DDDD | 11 |
文件 2:
1111-22-33 | 44:55:66 | 7777= | | AAAA | BBBB CCCC
文件 3 必须如下所示:
1111-22-33 | 44:55:66 | 7777=8888 | | AAAA | BBBB CCCC | DDDD | 11 |
#!/bin/bash
set -e
awk 'NR==FNR{A[$2]=$3; B[$1]=$2; next} {print $1,B[$1],A[$2],$4,$5,$6 }' FS="|" OFS="|" $1 $2 > $3
echo "done"
谢谢!
编辑:
@Lety 这是运行代码后的输出:
1111-22-33 | 44:55:66 | 7777=8888 | AAAA | BBBB CCCC | DDDD | 11 |
1111-22-33 | 44:55:66 | 7777=8888 | AAAA | BBBB CCCC | DDDD | 11 |
1111-22-33 | 44:55:66 | 7777= | | AAAA | BBBB CCCC
1111-22-33 | 44:55:66 | 7777= | | AAAA | BBBB CCCC
1111-22-33 ||| | AAAA | BBBB CCCC
解决方案
可能,您可能正在寻找这个,以合并 2 个文件:
awk 'NR==FNR{ for(i=1;i<=NF; i++) a[i]=$i; next }
{ print $1,$2, a[3],$4,$5,$6,a[7] }' FS="|" OFS="|" file1 file2
输出:
1111-22-33 | 44:55:66 | 7777=8888 | | AAAA | BBBB CCCC| 11
但这可能无法满足您的期望,因为我只是对应该发生的事情进行了疯狂的猜测。
推荐阅读
- javascript - Discord.js Covid Tracker 命令
- java - 如何在 Java 中使用 Retrofit 解析嵌套的多个 Json 对象
- ios - 强制 Unity iOS 应用程序崩溃以进行 Crashlytic 仪表板测试
- spring-boot - Spring Controller 在 Kotlin 中返回一个空对象
- sharepoint-online - SharePoint 列表 - 为审批者创建列表视图
- typescript - 为什么我不能在派生接口中添加重载?
- python - django中的分页不适用于第一页
- curl - 根据通配符条件从 Artifactory 动态下载文件
- ansible - 将不同的变量集传递给剧本中的两个不同任务
- python -
必须解决这个问题?