当前位置:网站首页>Awk implements SQL like join operation
Awk implements SQL like join operation
2020-11-07 18:55:00 【Irving the procedural ape】
awk、grep and sed go by the name of linux Three swordsmen , in fact grep and awk I also use it in my daily work (sed Use less ), Maybe some people are right about awk Less understanding , Let me give you a general introduction to . Many people think awk It's just a text processing tool , In fact, they use it the same way . But it's actually a language , Have mathematical operators 、 Process control statements , It even encapsulates many built-in variables and functions for text processing , This makes it powerful in text processing . If grep Can only do data filtering , that awk It can also process data 、 Analyze and even generate reports , After all, it's a complete programming language .
Because this article is not awk Getting started with , If you want to get started, I recommend Ruan Yifeng awk Introductory tutorial and Left ear mouse AWK A concise tutorial .
Back to my topic today , Today I'd like to show you something I use a lot awk Scene . Because we do back-end development , Often when doing data analysis, there will be such a problem ,1. Facing hundreds of thousands of data , We need to screen out hundreds and thousands of specific key The data of .2. For these millions of data , Directed against id Fields complement other fields .
There may be mastery of excel My classmates jumped out and said “ Is this ,so easy,vlookup That's it !” , in fact ,excel It does solve the problem , But it's a little heavy , Even sometimes we can't use it on the server excel. What other ways ? For the two scenes I'm talking about , Actually, think about it , Is it right? sql Two watches in Chinese join Can solve the problem . In fact, you don't really need to put files in the database , Only need to use awk One order can solve .
example
Let's take the question like , Suppose there are two files ,score.txt Save the student number + Performance data , Another one name.txt Save the student number + Name data , Now you want to know how many points everyone has baked .
score.txt
id score 1 872 673 684 755 906 1007 0
name.txt
id name 1 Zhang San 2 Li Si 3 Wang Wu 4 Zhao er 5 Lennon 6 Big bear
You want a copy with a student number Name and grade data , It looks like this .
id score name 1 87 Zhang San 2 67 Li Si 3 68 Wang Wu 4 75 Zhao er 5 90 Lennon 6 100 Big bear 7 0
use awk How easy it is to generate such data ? Just one line of code , You can save name.txt and score.txt, And then execute the following command to try .
awk 'ARGV[1]==FILENAME {map[$1]=$2} ARGV[2]==FILENAME {print $0, map[$1]}' name.........
版权声明
本文为[Irving the procedural ape]所创,转载请带上原文链接,感谢
边栏推荐
- FreeSWITCH视频会议“标准”解决方案
- Application layer software development Godfather teaches you how to refactor, senior programmers must professional skills
- How does LeadTools detect, read and write barcodes
- Developing STM32 USB with cubemx
- 傲視Kubernetes(一):Kubernetes簡介
- 甘特图对活动进行分组教程
- 2020-11-06: go, let's talk about the scheduler.
- LEADTOOLS如何检测,读取和写入条形码
- CI / CD of gitlab continuous integrated development environment
- Exception calling 'downloadstring' with '1' arguments: 'operation timed out'
猜你喜欢
.NETCore3.1+Vue.js打造的低代码工作流引擎
C# 枚举权限 |和||,&和&&的区别
About Devops seven misunderstandings, 99% of people have been hit!
JS array the usage of array is all here (array method reconstruction, array traversal, array de duplication, array judgment and conversion)
9. Routingmesh service communication between clusters
ImageMagick - add watermark
idea 激活到 2089 失效
And how to solve the conflict between pop-up menu and pop-up menu
Didi's distributed ID generator (tinyid), easy to use
【涂鸦物联网足迹】物联网主流通信方式
随机推荐
How to use Gantt chart layers and filters
测试攻城狮必备技能点!一文带你解读DevOps下的测试技术
python3操作gitlab
The official 1909 version of win10 cannot open the real-time protection solution of virus and threat protection in windows security center.
Application and principle of handlermethodargumentresolver
Nanjing logo design and production, guide VI system design
VARCHART XGantt入门教程
频收罚单的浦发银行:增收不增利,曾遭骗贷数亿元,内控缺位?
想要忘记以前连接到Mac的WiFi网络,试试这个方法!
Knowledge competition of garbage classification
如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题
Exclusive interview with Yue Caibo
C# 枚举权限 |和||,&和&&的区别
嘉宾介绍|2020 PostgreSQL亚洲大会中文分论坛:潘娟
cubemx做stm32 USB开发
【原創】ARM平臺記憶體和cache對xenomai實時性的影響
【涂鸦物联网足迹】物联网主流通信方式
Implementation of nginx version of microservice architecture
Using JSON webtoken (JWT) to generate token in nodejs
Classroom exercises