前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux实用技巧——paste横向合并文件内容

Linux实用技巧——paste横向合并文件内容

作者头像
莫斯
发布2020-09-10 10:36:18
1.6K0
发布2020-09-10 10:36:18
举报
文章被收录于专栏:备份

0. 前言

在工作的时候,遇到这么一个需求,有两文件,一个是query_file_1.txt 里面是原始去query,还有一个是query_file_2.txt 里面是改写后的query,这两个里面分别有2w+ 的query,并且两份文件里的每一行是一一对应的,数据格式如下所示:

Code.0.1 query_file_1.txt

代码语言:javascript
复制
[root@mobius ~]$ cat query_file_1.txt
FIFA足球世界
FIFA足球世界
FIFA足球世界
wps表格
南方周末
央视戏曲app
学校安全教育平台下载
安装万能钥匙
安装万能钥匙
小猪短租
...

Code.0.2 query_file_2.txt

代码语言:javascript
复制
[root@mobius ~]$ cat query_file_2.txt
fifa足球世界体
fifa足球世界世界
fifa足球世界 腾讯
wps 表格
南方周末报
央视戏曲app下载
学校教育安全平台下载
下载万能钥匙并安装
…万能钥匙
小猪短租公寓
...

现想要将这两个文件每一行使用制表符进行联接,如下格式:

代码语言:javascript
复制
FIFA足球世界	fifa足球世界体
FIFA足球世界	fifa足球世界世界
FIFA足球世界	fifa足球世界 腾讯
wps表格	wps 表格
南方周末	南方周末报
央视戏曲app	央视戏曲app下载
学校安全教育平台下载	学校教育安全平台下载
安装万能钥匙	下载万能钥匙并安装
安装万能钥匙	…万能钥匙
小猪短租	小猪短租公寓
...

在没有想到用paste命令之前是想写脚本或者awk 来实现,但总是觉得杀鸡用牛刀,最后找到了paste命令。 现写出解决方案:

Code.0.3 解决方法

代码语言:javascript
复制
[root@mobius ~]$ paste query_file_1.txt query_file_2.txt
FIFA足球世界	fifa足球世界体
FIFA足球世界	fifa足球世界世界
FIFA足球世界	fifa足球世界 腾讯
wps表格	wps 表格
南方周末	南方周末报
央视戏曲app	央视戏曲app下载
学校安全教育平台下载	学校教育安全平台下载
安装万能钥匙	下载万能钥匙并安装
安装万能钥匙	…万能钥匙
小猪短租	小猪短租公寓
...

下面对其进行说明

1. 使用方法

代码语言:javascript
复制
paste [COMMAND] [file_1] [file_2] [file_3] ...

其中常用的[COMMAND][-d] [-s]-d:是指出使用的分隔符,可以不写,如 Code.0.3 解决方法 所示一样,但是如果想用单引号' 或者 双引号" 进行分割的话,要加上转义符\

-s:是将每个文件的行进行平铺,如 Code.0.3 s 使用示例 所示

Code.1.1 s 使用示例

代码语言:javascript
复制
[root@mobius ~]$ paste -s query_file_1.txt
FIFA足球世界	FIFA足球世界	FIFA足球世界	wps表格	南方周末	央视戏曲app	学校安全教育平台下载	安装万能钥匙	安装万能钥匙	小猪短租

2. 简单示例

下面有三个文件,分别是 name.txt , job.txt, email.txt ,其中 name.txt四行数据,后两者有三行数据

代码语言:javascript
复制
[root@mobius ~]$ cat name.txt
张三
李四
王五
赵六
代码语言:javascript
复制
[root@mobius ~]$ cat job.txt
程序员
设计师
产品经理
代码语言:javascript
复制
[root@mobius ~]$ cat email.txt
zhangsan@mail.com
lisi@mail.com
wangwu@mail.com
  1. 下面将三个文件使用制表符\t进行横向合并 Code.2.1 paste -d 横向合并
代码语言:javascript
复制
[root@mobius ~]$ paste name.txt job.txt email.txt
张三	程序员	zhangsan@mail.com
李四	设计师	lisi@mail.com
王五	产品经理	wangwu@mail.com
赵六		

其中最后一行 赵六 后面是有两个制表符\t 下面将分隔符换成 *就可看出

代码语言:javascript
复制
[root@mobius ~]$ paste -d* name.txt job.txt email.txt
张三*程序员*zhangsan@mail.com
李四*设计师*lisi@mail.com
王五*产品经理*wangwu@mail.com
赵六**
  1. 将三个文件平铺 Code.2.2 paste -s 文件平铺
代码语言:javascript
复制
[root@mobius ~]$ paste -s name.txt job.txt email.txt
张三	李四	王五	赵六
程序员	设计师	产品经理
zhangsan@mail.com	lisi@mail.com	wangwu@mail.com
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/12/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0. 前言
  • 1. 使用方法
  • 2. 简单示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档