2012年10月22日星期一

shell学习笔记–paste 命令

paste用法
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格式为;
paste -d -s -file1 file2
选项含义如下:
-d 指定不同于空格或t a b键的域分隔符。例如用@分隔域,使用- d @。
-s 将每个文件合并成行而不是按行粘贴。
- 使用标准输入。例如ls -l |paste – ,意即只在一列上显示输出
[root@localhost my_shell]# cat per1
ID897
ID666
ID982
[root@localhost my_shell]# cat per2
P.Jones
S.Round
L.Clip
基本p a s t e命令将之粘贴成两列
[root@localhost my_shell]# paste per1 per2
ID897 P.Jones
ID666 S.Round
ID982 L.Clip
指定列
通过交换文件名即可指定哪一列先粘:
[root@localhost my_shell]# paste per2 per1
P.Jones ID897
S.Round ID666
L.Clip ID982
使用不同的域分隔符
要创建不同于空格或t a b键的域分隔符,使用- d选项。下面的例子用冒号做域分隔符
[root@localhost my_shell]# paste -d: per1 per2
ID897:P.Jones
ID666:S.Round
ID982:L.Clip
要合并两行,而不是按行粘贴,可以使用- s选项。下面的例子中,第一行粘贴为名字,第二行是I D号。
[root@localhost my_shell]# paste -s per1 per2
ID897 ID666 ID982
P.Jones S.Round L.Clip
paste命令管道输入
p a s t e命令还有一个很有用的选项( -)。意即对每一个( -),从标准输入中读一次数据。使用空格作域分隔符,以一个4列格式显示目录列表。方法如下:
[root@localhost my_shell]# ls | paste -d: – - – # 用:分割文件,且每行显示三个文件
a:a.UC:b
backfunc:b.UC:c
…..
也可以以一列格式显示输出:
[root@localhost my_shell]# ls |paste -d: -
a
a.UC
b
backfunc
b.UC

没有评论:

发表评论