paste:linux合并两个文件中的列(左右合并)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了paste:linux合并两个文件中的列(左右合并)相关的知识,希望对你有一定的参考价值。
[[email protected] ~]# paste [-d] file1 file2
选项与参数:
-d :后面可以接分隔字符。默认是以 [tab] 来分隔的!
- :如果 file 部分写成 - ,表示来自 standard input 的数据的意思。
范例一:将 /etc/passwd 与 /etc/shadow 同一行贴在一起
[[email protected] ~]# paste /etc/passwd /etc/shadow
bin:x:1:1:bin:/bin:/sbin/nologin bin:*:14126:0:99999:7:::
daemon:x:2:2:daemon:/sbin:/sbin/nologin daemon:*:14126:0:99999:7:::
adm:x:3:4:adm:/var/adm:/sbin/nologin adm:*:14126:0:99999:7:::
# 注意喔!同一行中间是以 [tab] 按键隔开的!
范例二:先将 /etc/group 读出(用 cat),然后与范例一贴上一起!且仅取出前三行
[[email protected] ~]# cat /etc/group|paste /etc/passwd /etc/shadow -|head -n 3
# 这个例子的重点在那个 - 的使用!那玩意儿常常代表 stdin 喔!
例:使用chpasswd批量修改用户密码
[[email protected] ~]# cat name
user1:
user2:
user3:
user4:
user5:
user6:
user7:
user8:
user9:
[[email protected] ~]# cat passwd
978ebbf1763
23c2626c37b
15dff03fa71
2459043b3ad
d317ec4870c
1728b6b5ddc
ed9d98f8b4c
0a7f3f5f8c4
96935ad635c
[[email protected] ~]# paste name passwd
user1: 978ebbf1763
user2: 23c2626c37b
user3: 15dff03fa71
user4: 2459043b3ad
user5: d317ec4870c
user6: 1728b6b5ddc
user7: ed9d98f8b4c
user8: 0a7f3f5f8c4
user9: 96935ad635c
[[email protected] ~]# paste -d"#" name passwd
user1:#978ebbf1763
user2:#23c2626c37b
user3:#15dff03fa71
user4:#2459043b3ad
user5:#d317ec4870c
user6:#1728b6b5ddc
user7:#ed9d98f8b4c
user8:#0a7f3f5f8c4
user9:#96935ad635c
注:-d指定分隔符,不加此参数默认为制表符。
以上是关于paste:linux合并两个文件中的列(左右合并)的主要内容,如果未能解决你的问题,请参考以下文章
合并两个 csv 文件,为所有匹配的记录添加一个带有标志值的列