“Linux文件的合并、排序和分割” 之 paste 命令

五、paste命令

paste [OPTION]… [FILE]…

将文件的行进行merge

常用选项:
  1. -d:  指定两个文件的行合并后的分割符
  2. -s: 将每个文件合并为一行,而不是按行进行合并
常见用法:

1
2
3
4
5
paste file1 file2 #将两个文件的每行合并
 
paste -d: file1 file2 #将两个文件的每行合并,分隔符为:
 
paste -s file1 file2 #将file1的内容合并为一行,将file2的内容合并为一行


paste单词意思是粘贴。该命令主要用来将多个文件的内容合并,与cut命令完成的功能刚好相反。

粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。
paste格式为:
paste -d -s -file1 file2
选项含义如下:
-d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @。
-s 将每个文件合并成行而不是按行粘贴。
- 使用标准输入。例如ls -l |paste ,意即只在一列上显示输出。(这个参数的解释是网上找来的,但从后面的例子来看,应该是对输出的列进行设置。)


例子:
文件: pas1
ID897
ID666
ID982
文件: pg 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命令还有一个很有用的选项(-):

从标准输入中读取数据

paste命令的“-”选项比较特殊,当paste命令从标准输入中读取数据时,“-”选项才起作用
eg:[root@jselab shell-book]# ls | paste-d" " - - - - -                   #从标准输入读取数据
anotherres.sh array_eval2.sh colon.sh example execerr.sh          #每行显示5个文件名
execin.sh exec.sh FILE1 FILE2 forever.sh
hfile loggg loggg1 loopalias.sh matrix.sh
newfile nokillme.sh part1 part2 part3
parttotal refor.sh reif.sh selfkill.sh sleep10.sh
sleep55.sh stack.sh subsenv.sh subsep.sh subsig.sh
subsparallel.sh subspipe.sh subsvar.sh TEACHER.dbtest.sh
testvar.sh traploop.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值