join 看字面上的意义 (加入/参加) 就可以知道,他是在处理两个文件之间的数据,而且,主要是在处理『两个文件当中,有 "相同数据" 的那一行,才将他加在一起』的意思。我们利用底下的简单例子来说明:

[root@www ~]# join [-ti12] file1 file2
选项与参数:
-t  :join 默认以空格符分隔数据,并且比对『第一个字段』的数据,如果两个文件相同,则将两笔数据联成一行,且第一个字段放在第一个!
-i  :忽略大小写的差异;
-1  :这个是数字的 1 ,代表『第一个文件要用那个字段来分析』的意思;
-2  :代表『第二个文件要用那个字段来分析』的意思。范例一:用 root 的身份,将 /etc/passwd 与 /etc/shadow 相关数据整合成一栏
[root@www ~]# head -n 3 /etc/passwd /etc/shadow
==> /etc/passwd <==
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin==> /etc/shadow <==
root:$1$/3AQpE5e$y9A/D0bh6rElAs:14120:0:99999:7:::
bin:*:14126:0:99999:7:::
daemon:*:14126:0:99999:7:::
# 由输出的数据可以发现这两个文件的最左边字段都是账号!且以 : 分隔[root@www ~]# join -t ':' /etc/passwd /etc/shadow
root:x:0:0:root:/root:/bin/bash:$1$/3AQpE5e$y9A/D0bh6rElAs:14120:0:99999:7:::
bin:x:1:1:bin:/bin:/sbin/nologin:*:14126:0:99999:7:::
daemon:x:2:2:daemon:/sbin:/sbin/nologin:*:14126:0:99999:7:::
# 透过上面这个动作,我们可以将两个文件第一字段相同者整合成一行!
# 第二个文件的相同字段并不会显示(因为已经在第一行了嘛!)范例二:我们知道 /etc/passwd 第四个字段是 GID ,那个 GID 记录在 /etc/group 当中的第三个字段,请问如何将两个文件整合?
[root@www ~]# head -n 3 /etc/passwd /etc/group
==> /etc/passwd <==
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin==> /etc/group <==
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
# 从上面可以看到,确实有相同的部分喔!赶紧来整合一下![root@www ~]# join -t ':' -1 4 /etc/passwd -2 3 /etc/group
0:root:x:0:root:/root:/bin/bash:root:x:root
1:bin:x:1:bin:/bin:/sbin/nologin:bin:x:root,bin,daemon
2:daemon:x:2:daemon:/sbin:/sbin/nologin:daemon:x:root,bin,daemon
# 同样的,相同的字段部分被移动到最前面了!所以第二个文件的内容就没再显示。
# 请读者们配合上述显示两个文件的实际内容来比对!

  这个 join 在处理两个相关的数据文件时,就真的是很有帮助的啦! 例如上面的案例当中,我的 /etc/passwd, /etc/shadow, /etc/group 都是有相关性的, 其中 /etc/passwd, /etc/shadow 以账号为相关性,至于 /etc/passwd, /etc/group 则以所谓的 GID (账号的数字定义) 来作为他的相关性。根据这个相关性, 我们可以将有关系的数据放置在一起!这在处理数据可是相当有帮助的!

  此外,需要特别注意的是,在使用 join 之前,你所需要处理的文件应该要事先经过排序 (sort) 处理! 否则有些比对的项目会被略过呢!特别注意了!

  参考资料:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash.php#join

转载于:https://www.cnblogs.com/ningvsban/p/3725567.html

【Linux】字符转换命令join相关推荐

  1. Linux图像转换命令行快捷键,从Linux命令行转换和优化图像 | MOS86

    作为一名技术作家,我的工作涉及研究,实验和记录有用的软件工具.但是那里 使用Microsoft Paint(像我们大多数人)假定,我一开始就尝试使用一些基于GUI的Linux图像编辑器,只是意识到它此 ...

  2. linux字符查找命令,linux查找文件或字符串的命令

    1. linux下面用于查到的命令有哪些? 是不是有很多呀,这个我还没做过统计和调查,不过这篇博客只介绍grep与find的最基本应用. grep和find功能都是相当的强大,这里也只是介绍这两个命令 ...

  3. Linux 字符转换指令

    1.tr命令用来删除一行中的字符,或者对字符进行替换. $ tr [-ds] SET1 ... -d : 删除行中 SET1 这个字符串 示例,将 last 输出的信息所有小写转换为大写. $ las ...

  4. shell(九)几个字符转换命令

    1. tr a. 删除字符 b. 替换字符 小写替换成大写 2. col 3. join 将两个文件中有相同数据的那一行加在一起 4. paste 将两个文件的相应的行贴在一起 5. expand/u ...

  5. Linux 图片转换命令 convert

    今天在写博客的时候遇到了图片过大无法上传的问题,在Linux下找到了一个很好的图片转换工具,在这里分享下. 转载自:http://selboo.com/post/738/ Image MagicK 是 ...

  6. linux 字符集转换命令,Linux下GBK编码到UTF-8文件编码转换方法

    Linux命令行下查看看文件的编码 enca 文件名 Linux文件名编码批量转换 convmv -f 源编码 -t 新编码 [选项] 文件名 常用参数: -r 递归处理子文件夹 --notest 真 ...

  7. linux字符图形命令,神奇的 Linux 命令行字符形状工具 boxes | Linux 中国

    原标题:神奇的 Linux 命令行字符形状工具 boxes | Linux 中国 本文将教你如何在 Linux 命令行终端中使用 boxes 工具绘制字符形状图形来包装你的文字让其更突出. -- Ja ...

  8. Linux—-—字符管理命令

    命令 : grep 功能 : 通过正则表达式查找文件中的关键字 参数 : -i: 忽略大小写 -c: 打印匹配的行数 -C: 打印出匹配的上下文 ( 上 N 行 , 下 N 行 ) 的多少行 -l: ...

  9. Linux字符截取命令-cut

    概述 cut是一个选取命令,.一般来说,选取信息通常是针对"行"来进行分析的,并不是整篇信息分析的. 语法 cut [-bn] [file] 或 cut [-c] [file] 或 ...

最新文章

  1. springboot 分层_限量!阿里Spring Boot成长笔记终开源!理论实战满满
  2. 下载备忘:甘特图实现的代码
  3. shaderlab学习一
  4. 修改mysql数据库服务器时间格式,修改本地mysql数据库时间格式
  5. 区块链基础知识系列第5课 Hyperledger fabric1.0网络中transaction产生以及流转过程
  6. python爬虫 爬取有道翻译详解
  7. 剑指Offer25 合并两个排序的链表
  8. linux系统io查看计算,Linux下查看进程IO工具iopp
  9. python学习 day6 (3月7日)
  10. python socket 发送图片
  11. 在 Nginx 上开启 https 实践
  12. 设置eclipse自动生成的author等注释
  13. 最新用python来操作mysql完全解析
  14. mdf mysql_mdf mysql数据库
  15. 【干货分享】制作一款清新的二次元风格字体
  16. 【机器学习】基于朴树贝叶斯的言论过滤器
  17. DFS深度优先搜索详解
  18. unity 3d开发的大型网络游戏
  19. python中randint是什么意思_python中random.randint和random.randrange的区别详解
  20. Tobii pro lab学习笔记1

热门文章

  1. ICCV2021 视频领域的纯Transformer方案!谷歌提出ViViT,在多个视频分类基准上SOTA!代码已开源!...
  2. 科研项目 | 深度参与前沿课题研究,全英华人教授协会(ABCP)资深学者亲授
  3. 自监督学习在CV领域研究进展总结
  4. 推荐!小议如何跳出魔改网络结构的火坑(完整版)
  5. Python资源大全 屌炸Python库
  6. 【OpenCV】OpenCV函数精讲之 -- 颜色空间缩减及LUT函数
  7. Pytorch还是TensorFlow?顶会带你览趋势
  8. HTML页面把list转成array,c# – 将Collection转换为Array或List的快速方法?
  9. 配置linux登录超时命令,LINUX中 设置登录超时
  10. mysql 查询两张表结构相同的数据库_数据库原理习题(含答案)