Linux多个文件按列合并的多种场景操作方式

paste

可用范围:不考虑列值,可直接合并

1.1. 列数相同

默认以tab分隔合并,-d参数可指定字符(空格也是字符)分隔合并
在这里插入图片描述

1.2. 列数不同

列数不同也会输出,若用-d参数带字符分隔也会带上分隔字符后输出

vi t1.txt
A ip a
B ip addr
C free -m
D df -h
E cat echo
F ps -ef

vi t2.txt
A lsblk lscpu
B top ifconfig
C find sed
G D vi vim

在这里插入图片描述

1.3. 合并列很多的情况

当合并的文件列数过多时,在合并处会出现“乱码”,此时需要手动处理一下
在这里插入图片描述
== ⚠:使用ctrl+v,ctrl+m打^M字符,否则无法识别 ==

# 修改合并后的文件,去掉^M字符
vi mergedcs.csv
:1,$ s/^M//g

awk

可用范围:文件存在重复字段,去重合并,需要指定列数【相当于合并后删除重复首列】
https://blog.csdn.net/qq_31573519/article/details/83002137

join

可用范围:文件存在重复字段,去重合并【相当于合并后删除重复首列】
== ⚠:join一次只能合并两个文件 ==

3.1. 合并首列相同字段

只合并存在相同字段的行,且相同字段为当前行的首字符(如下例中“D”行是匹配不到的)
在这里插入图片描述

3.2. 特殊字符分隔的一行同列

可用 -t 参数指定分隔的列字符进行合并
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值