Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2075985
  • 博文数量: 354
  • 博客积分: 4955
  • 博客等级: 上校
  • 技术积分: 4579
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-21 11:46
文章分类

全部博文(354)

文章存档

2015年(1)

2013年(4)

2012年(86)

2011年(115)

2010年(67)

2009年(81)

我的朋友

分类:

2011-08-26 14:31:19

c u t用来从文本文件或标准输出中抽取数据列或者域,然后再用p a s t e可以将这些数据粘贴起来形成相关文件。粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。
p a s t e
将按行将不同文件行信息放在一行。缺省情况下, p a s t e连接时,用空格或t a b键分隔新行中不同文本,除非指定- d选项,它将成为域分隔符。
p a s t e
格式为;

[Copy to clipboard] [ - ]

CODE:

paste -d -s -file1 file2



QUOTE:

选项含义如下:
-d
指定不同于空格或t a b键的域分隔符。例如用@分隔域,使用- d @
-s
将每个文件合并成行而不是按行粘贴。
-
使用标准输入。例如ls -l |paste ,意即只在一列上显示输出。


从前面的剪切中取得下述两个文件:

[Copy to clipboard] [ - ]

CODE:

[sam@chenwy sam]$ cut -d" " -f 2 pers2 >pas1
[sam@chenwy sam]$ cat pas1
ID897
ID666
ID982



[Copy to clipboard] [ - ]

CODE:

[sam@chenwy sam]$ cut -d" " -f1 pers >pas2
[sam@chenwy sam]$ cat pas2
P.Jones
S.Round
L.Clip


基本p a s t e命令将之粘贴成两列:

[Copy to clipboard] [ - ]

CODE:

[sam@chenwy sam]$ paste pas1 pas2
ID897   P.Jones
ID666   S.Round
ID982   L.Clip


指定列
通过交换文件名即可指定哪一列先粘:

[Copy to clipboard] [ - ]

CODE:

[sam@chenwy sam]$ paste pas2 pas1
P.Jones ID897
S.Round ID666
L.Clip  ID982


使用不同的域分隔符
要创建不同于空格或t a b键的域分隔符,使用- d选项。下面的例子用冒号做域分隔符。

[Copy to clipboard] [ - ]

CODE:

[sam@chenwy sam]$ paste -d: pas2 pas1
P.Jones:ID897
S.Round:ID666
L.Clip:ID982


要合并两行,而不是按行粘贴,可以使用- s选项。下面的例子中,第一行粘贴为名字,第二行是I D号。

[Copy to clipboard] [ - ]

CODE:

[sam@chenwy sam]$ paste -s pas2 pas1
P.Jones S.Round L.Clip
ID897   ID666   ID982


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

[Copy to clipboard] [ - ]

CODE:

[sam@chenwy sam]$ ls | paste -d" " - - - - -
1.bak 1.txt append.sed backll.ee change.sed
data.f data.txt delete_me_and_die dht dir1
......................


一行显示四个文件,以空格分开

[Copy to clipboard] [ - ]

CODE:

[sam@chenwy sam]$ ls | paste -d: - - - - -
1.bak:1.txt:append.sed:backll.ee:change.sed
data.f:data.txt:delete_me_and_die:dht:dir1
.....................


一行显示四个文件,以冒号:分开

也可以以一列格式显示输出:

[Copy to clipboard] [ - ]

CODE:

[sam@chenwy sam]$ ls | paste -d" " -
1.bak
1.txt
append.sed
backll.ee
..................
一行显示一个文件

 

阅读(3744) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~