paste(如何在Linux中使用paste命令)

发布时间:2025-12-11 02:30:10 浏览次数:1

01. 命令概述

paste命令会把每个文件以列对列的方式,一列列地加以合并 ,他就是相当于把两个不同的文件内容粘贴在一起,形成新的文件。

注意:paste默认粘贴方式以列的方式粘贴,但是并不是不能以行的方式粘贴,加上-s选项就可以行方式粘贴。

02. 命令格式

用法:paste [选项]... [文件]...

03. 常用选项

将每个指定文件里的每一行整合到对应一行里写到标准输出,之间用制表符分隔。
如果没有指定文件,或指定文件为"-",程序将从标准输入读取数据。

长选项必须使用的参数对于短选项时也是必需使用的。
-d, --delimiters=列表改用指定列表里的字符替代制表分隔符
-s, --serial不使用平行的行目输出模式,而是每个文件占用一行
--help显示此帮助信息并退出
--version显示版本信息并退出

04. 参考示例

文件内容如下

[deng@localhosttest]$catfile1123456[deng@localhosttest]$catfile2AABBCCDDEEFF[deng@localhosttest]$

4.1 合并两个文件

[deng@localhosttest]$pastefile1file21AA2BB3CC4DD5EE6FF[deng@localhosttest]$

可以看出 默认使用制表符分隔

[deng@localhosttest]$pastefile1file2|sed-nl1\tAA$2\tBB$3\tCC$4\tDD$5\tEE$6\tFF$[deng@localhosttest]$

4.2 指定字符代表制表符作为分隔符

[deng@localhosttest]$paste-d'*'file1file21*AA2*BB3*CC4*DD5*EE6*FF[deng@localhosttest]$

4.3 每个文件合并成行而不是按行粘贴。(行列转置会用到)

[deng@localhosttest]$paste-s-d'*'file1file21*2*3*4*5*6AA*BB*CC*DD*EE*FF[deng@localhosttest]$

要注意一点,此处一定要把星号用引号括起来(单引号双引号均可),否则 Shell]会把星号扩展为当前目录下的文件列表,千万小心。

4.4 行列倒转

[deng@localhosttest]$paste-sfile1123456[deng@localhosttest]$

4.5 两个文件行数不同

[deng@localhosttest]$pastefile1file21AA2BB3CC4DD5EE6FF7[deng@localhosttest]$

注意, 参数的顺序对输出是有影响的

[deng@localhosttest]$pastefile2file1AA1BB2CC3DD4EE5FF67[deng@localhosttest]$

4.6 拼接多个文件

[deng@localhosttest]$pastefile1file2file31AAaa2BBbb3CCcc4DDdd5EEee6FFff7[deng@localhosttest]$

paste 好强大,多个文件,照样能够按行拼接。而且会发现,paste 拼接是和文件列表的顺序有关的。

paste命令还有一个很有用的选项(-)。意即对每一个(-),从标准输入中读一次数据。使用空格作域分隔符,以一个6列格式显示目录列表。方法如下:

[root@masteretc]#cat/etc/passwd|head-n5|cut-d:-f1,3-5|paste-d@---root:0:0:root@bin:1:1:bin@daemon:2:2:daemonadm:3:4:adm@lp:4:7:lp@[root@masteretc]#cat/etc/passwd|head-n5|cut-d:-f1,3-5|paste-d@---root:0:0:root@bin:1:1:bin@daemon:2:2:daemonadm:3:4:adm@lp:4:7:lp@[root@masteretc]#cat/etc/passwd|head-n5|cut-d:-f1,3-5|paste-d@----root:0:0:root@bin:1:1:bin@daemon:2:2:daemon@adm:3:4:admlp:4:7:lp@@@[root@masteretc]#cat/etc/passwd|head-n5|cut-d:-f1,3-5|paste-d@-----root:0:0:root@bin:1:1:bin@daemon:2:2:daemon@adm:3:4:adm@lp:4:7:lp[root@masteretc]#cat/etc/passwd|head-n5|cut-d:-f1,3-5|paste-d@------root:0:0:root@bin:1:1:bin@daemon:2:2:daemon@adm:3:4:adm@lp:4:7:lp@[root@masteretc]#cat/etc/passwd|cut-d:-f1,3-5|paste-d@------root:0:0:root@bin:1:1:bin@daemon:2:2:daemon@adm:3:4:adm@lp:4:7:lp@sync:5:0:syncshutdown:6:0:shutdown@halt:7:0:halt@mail:8:12:mail@uucp:10:14:uucp@operator:11:0:operator@games:12:100:gamesgopher:13:30:gopher@ftp:14:50:FTPUser@nobody:99:99:Nobody@dbus:81:81:Systemmessagebus@usbmuxd:113:113:usbmuxduser@avahi-autoipd:170:170:AvahiIPv4LLStackvcsa:69:69:virtualconsolememoryowner@rtkit:499:497:RealtimeKit@abrt:173:173:@haldaemon:68:68:HALdaemon@saslauth:498:76:"Saslauthduser"@postfix:89:89:ntp:38:38:@apache:48:48:Apache@avahi:70:70:AvahimDNS/DNS-SDStack@pulse:497:496:PulseAudioSystemDaemon@gdm:42:42:@sshd:74:74:Privilege-separatedSSHtcpdump:72:72:@zookeeper:500:500:zookeeper@hadoop:501:501:@@@

看完上述内容,你们对如何在Linux中使用paste命令有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注本站行业资讯频道,感谢大家的支持。

paste
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477