Linux paste命令的使用方法
01.命令概述
paste命令会把每个文件以列对列的方式,一列列地加以合并,他就是相当于把两个不同的文件内容粘贴在一起,形成新的文件。
注意:paste默认粘贴方式以列的方式粘贴,但是并不是不能以行的方式粘贴,加上-s选项就可以行方式粘贴。
02.命令格式
用法:paste[选项]...[文件]...
03.常用选项
将每个指定文件里的每一行整合到对应一行里写到标准输出,之间用制表符分隔。
如果没有指定文件,或指定文件为"-",程序将从标准输入读取数据。
长选项必须使用的参数对于短选项时也是必需使用的。
-d,--delimiters=列表 改用指定列表里的字符替代制表分隔符
-s,--serial 不使用平行的行目输出模式,而是每个文件占用一行
--help 显示此帮助信息并退出
--version 显示版本信息并退出
04.参考示例
文件内容如下
[deng@localhosttest]$catfile1 1 2 3 4 5 6 [deng@localhosttest]$catfile2 AA BB CC DD EE FF [deng@localhosttest]$
4.1合并两个文件
[deng@localhosttest]$pastefile1file2 1AA 2BB 3CC 4DD 5EE 6FF [deng@localhosttest]$
可以看出默认使用制表符分隔
[deng@localhosttest]$pastefile1file2|sed-nl 1\tAA$ 2\tBB$ 3\tCC$ 4\tDD$ 5\tEE$ 6\tFF$ [deng@localhosttest]$
4.2指定字符代表制表符作为分隔符
[deng@localhosttest]$paste-d'*'file1file2 1*AA 2*BB 3*CC 4*DD 5*EE 6*FF [deng@localhosttest]$
4.3每个文件合并成行而不是按行粘贴。(行列转置会用到)
[deng@localhosttest]$paste-s-d'*'file1file2 1*2*3*4*5*6 AA*BB*CC*DD*EE*FF [deng@localhosttest]$
要注意一点,此处一定要把星号用引号括起来(单引号双引号均可),否则Shell]会把星号扩展为当前目录下的文件列表,千万小心。
4.4行列倒转
[deng@localhosttest]$paste-sfile1 123456 [deng@localhosttest]$
4.5两个文件行数不同
[deng@localhosttest]$pastefile1file2 1AA 2BB 3CC 4DD 5EE 6FF 7 [deng@localhosttest]$
注意,参数的顺序对输出是有影响的
[deng@localhosttest]$pastefile2file1 AA1 BB2 CC3 DD4 EE5 FF6 7 [deng@localhosttest]$
4.6拼接多个文件
[deng@localhosttest]$pastefile1file2file3 1AAaa 2BBbb 3CCcc 4DDdd 5EEee 6FFff 7 [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: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|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|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:sync shutdown:6:0:shutdown@halt:7:0:halt@mail:8:12:mail@uucp:10:14:uucp@operator:11:0:operator@games:12:100:games gopher:13:30:gopher@ftp:14:50:FTPUser@nobody:99:99:Nobody@dbus:81:81:Systemmessagebus@usbmuxd:113:113:usbmuxduser@avahi-autoipd:170:170:AvahiIPv4LLStack vcsa: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-separatedSSH tcpdump:72:72:@zookeeper:500:500:zookeeper@hadoop:501:501:@@@
到此这篇关于Linuxpaste命令的使用方法的文章就介绍到这了,更多相关Linuxpaste命令内容请搜素毛票票以前的文章或下面相关文章,希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。