Linux下paste命令,按列合并文件,很实用

linux下按列合并文件 

cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。 
粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。 
paste格式为: 
paste -d -s -file1 file2 
选项含义如下: 
-d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @。 
-s 将每个文件合并成行而不是按行粘贴。 
- 使用标准输入。例如ls -l |paste ,意即只在一列上显示输出。 
例子: 
#cat pas1 
ID897 
ID666 
ID982 
#cat pas2 
P.Jones 
S.Round 
L.Clip 
基本paste命令将pas1和pas2两文件粘贴成两列: 
# paste pas1 pas2 
ID897   P.Jones 
ID666   S.Round 
ID982   L.Clip 
通过交换文件名即可指定哪一列先粘: 
# paste pas2 pas1 
P.Jones ID897 
S.Round ID666 
L.Clip ID982 
要创建不同于空格或tab键的域分隔符,使用-d选项。下面的例子用冒号做域分隔符。 
# paste -d: pas2 pas1 
P.Jones:ID897 
S.Round:ID666 
L.Clip:ID982 
要合并两行,而不是按行粘贴,可以使用-s选项。下面的例子中,第一行粘贴为ID号,第二行是名字。 
# paste -s pas1 pas2 
ID897   ID666   ID982 
P.Jones S.Round L.Clip 
paste命令还有一个很有用的选项(-)。意即对每一个(-),从标准输入中读一次数据。使用空格作域分隔符,以一个6列格式显示目录列表。方法如下: 
# ls /etc | paste -d" " - - - - - - 
MANPATH PATH SHLIB_PATH SnmpAgent.d/ TIMEZONE X11/ 
acct/ aliases@ arp@ audeventstab audomon@ auto_master 
auto_parms.log auto_parms.log.old backup@ backup.cfg bcheckrc@ bootpd@ 
bootpquery@ bootptab btmp@ catman@ checklist@ chroot@ 
clri@ cmcluster/ cmcluster.conf cmom.conf conf@ convertfs@ 
copyright cron@ csh.login d.cshrc@ d.exrc@ d.login@ 
也可以以一列格式显示输出: 
# ls /etc | paste -d"" - 
MANPATH 
PATH 
SHLIB_PATH 
SnmpAgent.d/ 
TIMEZONE 
X11/ 
acct/ 
aliases@ 
arp@ 
audeventstab 
audomon@ 
auto_master 
auto_parms.log 
auto_parms.log.old 
backup@ 
backup.cfg 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值