LINUX下按key合并——join命令

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 
这样就能够将四个文件 连接到 一起了。


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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux下的磁盘加密技术有很多种,其比较常用的是LUKS(Linux Unified Key Setup)。LUKS是Linux下磁盘加密的一种标准,它可以对整个磁盘或者分区进行加密,保护数据的隐私性和安全性。 LUKS的工作原理是,在磁盘上创建一个加密容器,所有数据都保存在这个容器内部,容器本身是通过一个密钥进行加密的。在使用磁盘前,需要输入这个密钥进行解密,才能访问容器内部的数据。 下面是在Linux下使用LUKS对磁盘进行加密的步骤: 1. 创建一个空的分区或整个磁盘,可以使用fdisk或parted命令进行分区操作。 2. 使用cryptsetup命令对分区或整个磁盘进行加密操作,如下所示: ```shell $ sudo cryptsetup luksFormat /dev/sda1 ``` 这个命令会提示输入加密密码,确认后会将/dev/sda1这个分区进行加密,加密完成后需要使用下面的命令来打开该加密分区: ```shell $ sudo cryptsetup luksOpen /dev/sda1 my_encrypted_partition ``` 这个命令会提示输入加密密码,输入正确的密码后,会将/dev/sda1解密并挂载到/my_encrypted_partition目录下。 3. 格式化解密后的分区,可以使用mkfs.ext4或其他格式化命令: ```shell $ sudo mkfs.ext4 /dev/mapper/my_encrypted_partition ``` 4. 挂载解密后的分区: ```shell $ sudo mount /dev/mapper/my_encrypted_partition /mnt/my_encrypted_partition ``` 至此,整个加密分区已经成功挂载到/mnt/my_encrypted_partition目录下了。 5. 卸载并关闭加密分区: ```shell $ sudo umount /mnt/my_encrypted_partition $ sudo cryptsetup luksClose my_encrypted_partition ``` 以上就是使用LUKS对磁盘进行加密的基本步骤。需要注意的是,在使用LUKS加密分区时,一定要妥善保管好加密密码,否则数据将无法访问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值