shell join命令详解(转)

SHELL脚本join用法详解 本文档描述了在linux操作系统下,shell脚本当中的join工具的使用 立即下载

转自http://www.cnblogs.com/mfryf/p/3402200.html

join命令
功能:“将两个文件里指定栏位同样的行连接起来”,即依照两个文件里共有的某一列,将相应的行拼接成一行。
join [options] file1 file2
注:这两个文件必须在已经在此列上是依照同样的规则进行了排序。
join选项
-a FILENUM:除了显示匹配好的行另外将指定序号(1或2)文件里部匹配的行显示出来
-e EMPTY:将须要显示可是文件里不存在的域用此选项指定的字符取代
-i :忽略大写和小写
-j FIELD :等同于 -1 FIELD -2 FIELD,-j指定一个域作为匹配字段
-o FORMAT:以指定格式输出
-t CHAR :以指定字符作为输入输出的分隔符
join 默认以空白字符做分隔符(空格和\t),能够使用 join -t $'\t'来指定使用tab做分隔符
-v FILENUM:与-a相似 但值显示文件里没匹配上的行
-1 FIELD:以file1中FIELD字段进行匹配
-2 FIELD:以file2中FIELD字段进行匹配
--help :打印命令帮助文件
样例:
文件 file1.txt
aa 1 2
bb 2 3
cc 4 6
dd 3 3
文件file2.txt
aa 2 1
bb 8 2
ff 2 4
cc 4 4
dd 5 5

1.join file1.txt file2.txt
输出:aa 1 2 2 1
bb 2 3 8 2
默认已两个文件的第一行做匹配字段,默认以空格(不限个数)做分隔符。
2.join -j 1 file1.txt file2.txt
输出:aa 1 2 2 1
bb 2 3 8 9
-j选项 指定了以两个文件里第一列做匹配字段 等同于join file1.txt file2.txt
3. join -1 2 -2 3 file1.txt file2.txt
输出: 1 aa 2 aa 2
2 bb 3 bb 8
4 cc 6 ff 2
4 cc 6 cc 4
以第一个文件的第二列和第二个文件的第三列做匹配字段。因为第二个文件里第三列的两个3 都与第一个文件里第三行因此输出
4 cc 6 ff 2
4 cc 6 cc 4
4 join -o 1.1 -o 1.2 -o 1.3 -o 2.1 -o 2.2 -o 2.3 -e 'empty' -a 1 file1.txt file2.txt
输出: aa 1 2 aa 2 1
bb 2 3 bb 8 2
cc 4 6 empty empty empty
dd 3 3 empty empty empty
-o 指定 将file1的1,2,3列,file2的1,2,3 列都输出。-a指定将file1中不匹配的行也输出,可是file2中沒有与file1后两行相应的字段,因此使用empty补齐。

5.join -v 1 file1.txt file2.txt
输出: cc 4 6
dd 3 3
-v 1 将file1中不匹配的行输出
PS:join命令和数据库中的join命令很相似。
尽管file1和file2都已经排序,可是因为在第三行时開始不匹配因此仅仅匹配上了前两行,后面的行尽管字段也能够相应可是以不能匹配。join命令,对文件格式的要求很强,假设想要更灵活的使用,可用AWK命令,參加AWK实例

6. join 标准输入
有时我们须要将多个格式同样的文件join到一起,而join接受的是两个文件的指令,此时我们能够使用管道和字符“-"来实现
join file1 file2 | join - file3 | join - file4
这样就能够将四个文件 连接到 一起了。


暗月项目七详解 本文围绕“暗月靶场项目七”展开,记录了一次从外网 Web 入口逐步深入内网并最终获取域控目标的完整实训过程。 阅读详情

相关推荐

使用ShaderGraph制作URP各向异性

URP上用shaderGraph实现各向异性效果,解决只能用shader的问题

dreamform的专栏 1096

Linux shell join命令详解

Linux join命令 2012-02-09 17:49:00| 分类: SHELL | 标签:linux join 文件连接 |字号 订阅join命令 功能:“将两个文件里指定栏位同样的行连接起来”,即依照两个文件里共有的某一列,将相应的行拼接成一行。 join [options] file1 file2 注:这两个文件必须在已经在此列上是依照同样的规则进行了排序。join选项 ...

weixin_33882452的博客 556

YOLOv8 TensorRT C++部署实战详解:从XMake构建到推理流水线

本项目实现了一个基于YOLOv8和TensorRT的高性能火灾烟雾检测系统,具有以下核心特点: 技术架构:采用TensorRT 8.6+进行GPU加速推理,结合CUDA 12.1和OpenCV 4.8+,实现高效计算机视觉处理。系统使用XMake替代CMake构建,配置更简洁高效。

hscing的博客 1065

合并与分割-------shell学习(8)

sortuniq 会去除相邻的重复行,但是对于重复行之间夹杂其它内容的,不会判定为重复。join 用来合并两个已经排序的文件,指定join域,在两文件该域中拥有相同内容的行会被合到一起,从而使该行只拥有一个join域内容,以及两个文件中其它域的内容的并。其它没有在join域没有共同内容的行则会原封不动地输出。cut 将某个文件中的某几列或某几个域拿出来。-c指定字符剪切范围,-f指定域剪切范围。paste 将两个文件中的内容合并,第一个文件的i行和第二个文件的i行合成一行。split 将大文件分割

wenlei_zhouwl的专栏 796

KEIL MDK实战:如何用fromelf工具解析STM32的ELF文件结构(附完整命令行)

本文详细介绍了如何使用KEIL MDK中的fromelf工具解析STM32的ELF文件结构,包括内存段分析、符号表追踪和反汇编关键函数等实战技巧。通过完整的命令行示例,帮助嵌入式开发者优化内存占用、排查运行时问题,并提升STM32项目的开发效率。

weixin_42631411的博客 186

手把手教你设计STM32的JTAG电路:从原理图到PCB布局(含JLINK连接详解)

本文详细介绍了STM32的JTAG电路设计全流程,从核心原理、接口规范到PCB布局布线技巧,特别包含JLINK调试器的连接与配置方法。通过信号滤波、上拉配置和防反接保护等关键设计要点,帮助开发者构建稳定可靠的JTAG调试环境,提升嵌入式开发效率。

weixin_29159441的博客 388

python shell怎么运行字符串拼接无输出_Python拼接字符串的7种方法总结

Python拼接字符串的7种方法总结

weixin_39738755的博客 309

告别Keil4!手把手教你用Keil C51 V9.61编译51单片机代码(附最新激活方法)

本文详细介绍了Keil C51 V9.61在51单片机开发中的全栈升级指南,包括编译速度提升、调试器性能优化和现代开发支持等核心优势。通过智能安装方案、项目迁移实战和新特性深度应用,帮助开发者告别Keil4,大幅提升开发效率。附有最新激活方法和实用技巧,适用于嵌入式开发工程师。

weixin_26886855的博客 419

shell中的join命令

(1)基本说明 Linux下最常用的数据文件格式是文本格式的,多个字段之间通过分隔符来区分,分隔符比如冒号(????、制表符、空格等。/etc/passwd和/etc/group就是用:来分隔的,用MySQL的into outfile指令导出的数据通常是以制表符分隔的。这种文本格式既方便人去阅读,也适合程序处理,通常某列类似于数据库中的关键字。 ** join命令就是一个根据关键字合并数据文件的命令(...

qq_42024433的博客 1451

玉米群体遗传分析实战:如何用IQtree和VCF文件快速构建系统发育树(附避坑指南)

本文详细介绍了如何利用IQtree和VCF文件进行玉米群体遗传分析,并快速构建可靠的系统发育树。文章重点解析了从VCF格式转换到PHYLIP格式的实用技巧,强调了使用ASC模型校正SNP数据偏差的重要性,并提供了完整的参数设置、常见报错解决方案及结果评估指南,帮助研究者高效完成分析并规避常见陷阱。

leaf8的博客 607

Android14 RK3576开发板有线网卡静态IP配置全攻略(附数据库修改详解)

本文详细介绍了在Android 14 RK3576开发板上实现有线网卡出厂默认静态IP配置的完整方案。通过深入修改系统源码和SettingsProvider数据库,扩展全局设置字段并注入默认值,确保设备首次启动即自动应用预设的IP地址、子网掩码、网关和DNS,适用于工业控制、数字标牌等批量部署场景,有效提升生产效率。

weixin_29253711的博客 606

shell常用命令—join命令

shell常用命令—join命令1. 连接 1. 连接 内连接:将两个文件中每列第一个字符相同的行合并 全连接(显示左边和右边所有记录) join file1 file2 #内连接:将两个文件中每列第一个字符相同的行合并 join -a1 file1 file2 #显示左边文件中的所有记录(右边文件中没有匹配的不显示) join -a2 file1 file2 #显示右边文件中的所有记录(...

kaiser king的博客 916

Spring Boot:如何快速搭建一个高性能微服务架构?

通过本文的详细步骤,我们成功搭建了一个高性能的微服务架构。Spring Boot 和 Spring Cloud 提供了强大的工具链,使得开发者能够快速实现服务注册与发现、负载均衡、熔断器与降级机制等功能。同时,通过数据库连接池、Redis 缓存和异步处理等优化手段,进一步提升了系统的性能和可靠性。希望本文能够帮助你快速入门 Spring Boot 微服务架构的搭建,并为实际项目提供参考。如果你有任何问题或建议,欢迎在评论区留言!

shrgegrb的博客 1013

[SHELL]:join 命令详解

join join 是 paste 的一个很好的增强版本。join 只有在所要连接的文件共享某个共同的域时才会工作。 举例来说,考虑我们上面介绍 paste 时所使用的两个文件。下面是在使用 join 对其进行合并时所发生的事情:   # join fileone f

happygongzhuo的专栏 7611

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

linux join命令详解,Linux shell join命令详解

Linux join命令2012-02-09 17:49:00| 分类: SHELL | 标签:linux join 文件连接 |字号 订阅join命令功能:“将两个文件里指定栏位同样的行连接起来”,即依照两个文件里共有的某一列,将相应的行拼接成一行。join [options] file1 file2注:这两个文件必须在已经在此列上是依照同样的规则进行了排序。join选项-a FILENUM:除...

weixin_28716769的博客 309

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

shell中的join命令详解

1.join命令

qq_36417677的博客 599

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Shell常用命令-- join 详解

一、join命令 **命令功能:**将两个文件里指定栏位同样的行连接起来,即依照两个文件里共有的某一列,将相应的行拼接成一行。 用法: join [options] file1 file2 注: 这两个文件必须已经在此列上是依照同样的规则进行了排序 join默认是区分大小写的 二、常见用法 示例1: [root@server1 ~]# cat join1 www onmpw domain ...

qq_35887546的博客 1209

shell中join链接多个域_Linux shell join命令详解

Linux join命令2012-02-09 17:49:00| 分类: SHELL | 标签:linux join 文件连接 |字号 订阅join命令功能:“将两个文件里指定栏位同样的行连接起来”,即依照两个文件里共有的某一列,将相应的行拼接成一行。join [options] file1 file2注:这两个文件必须在已经在此列上是依照同样的规则进行了排序。join选项-a FILENUM:除...

weixin_39647773的博客 232

shell中常用的命令:join命令

文章目录shell中常用的命令:join命令1.连接2.-o:指定输出字段3.-t:指定分隔符4.-v 1 :不匹配的行输出 shell中常用的命令:join命令 1.连接 内连接:将两个文件中每列第一个字符相同的行合并 全连接(显示左边和右边所有记录) join file1 file2 #内连接:将两个文件中每列第一个字符相同的行合并 join -a1 file1 file2 #显示左边文...

qq_36275923的博客 436

Linux之shell中常用的命令---join命令

文章目录shell中常用的命令---join命令1.join命令的用法1.连接2.指定输出字段3.指定分隔符4.不匹配的行输出 shell中常用的命令—join命令 1.join命令的用法 功能:将两个文件中,指定栏位内容相同的行连接起来。 找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。 默认区分大小写 1.连接 内连接:将两个文件中每列第一个字符相同的行合并 全连接...

weixin_43936969的博客 716

Linux Shell 中的 join 命令:高效关联数据的实用工具

需求:关联后只输出“姓名、科目、分数”,不输出学号。张三 数学 90李四 语文 85王五 数学 95表示输出文件1的第2字段(姓名)、文件2的第2字段(科目)、文件2的第3字段(分数)。join 命令是 Linux Shell 中一个高效的文本关联工具,虽然功能不如数据库的 JOIN 操作强大,但在处理小型文本文件的关联场景中,它无需依赖数据库环境,操作简单高效,能够极大提升文本数据处理的效率。核心要点是记住“先排序,再关联”的原则,熟练掌握-t-1/-2-a-o。

CharlesYuangc的博客 720

Shell中的join方法(超详细)

Shell中的join方法 将两个文件里指定栏位置同样的行连接起来, 即依照两个文件中共同拥有的某一列,将相应的行拼成一行(原文件不改变层) 内连接(忽略不匹配的行) join file1 file2 显示左边文件中所有记录,右边文件中没有匹配的显示空白 Join -a1 file1 file2 显示右边文件中所有记录,左边文件中没有匹配的显示空白 Join -a2 file1...

qq_43309149的博客 6710

学习使用shell中的join命令

用途说明 Linux下最常用的数据文件格式是文本格式的,多个字段之间通过分隔符来区分,分隔符比如冒号(:)、制表符、空格等。/etc/passwd和/etc/group就是用:来分隔的,用MySQL的into outfile指令导出的数据通常是以制表符分隔的。这种文本格式既方便人去阅读,也适合程序处理,通常某列类似于数据库中的关键字。join命令就是一个根据关键字合并数据文件的命令(join l...

流浪天空 4806

shell中常用的命令---join命令

shell中常用的命令—join命令 1.连接 内连接:将两个文件中每列第一个字符相同的行合并 全连接(显示左边和右边所有记录) join file1 file2 #内连接:将两个文件中每列第一个字符相同的行合并 join -a1 file1 file2 #显示左边文件中的所有记录(右边文件中没有匹配的不显示) join -a2 file1 file2 #显示右边文件中的所有记录(左边文件...

nigar_的博客 460

【Shell 命令集合 文本处理工具】Linux 字段连接 join 命令使用指南

join命令是Linux系统中的一个文本处理工具,它用于将两个文件的行按照共同的字段连接起来。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1461
上一篇: sed命令详解 (转)
下一篇: 【机器学习详解】SMO算法剖析
小小小小葱
博客等级 码龄14年 22粉丝 266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值