功能说明:paste 命令从在命令行上指定的文件中读取输入。如果出现 - (减号)作为文件名,此命令从标准输入中读取。此命令连接给定的文件中的行并把结果行写到标准输出中。
语法:paste [s] [d] 「文件」
操作的文件:
-
[skytrails@localhost shell]$ cat 1
-
1
-
0.000000000
-
Nintendo_cf:38:21
-
Broadcast
-
ARP
-
60
-
172.168.1.1
-
[skytrails@localhost shell]$ cat 2
-
No.
-
Time
-
Source
-
Destination
-
Protocol
-
Length
-
Info
1、s选项:不使用平行的输出模式,而是每个文件占用一行。
请对比如下操作:
-
[skytrails@localhost shell]$ paste 1 2
-
1 No.
-
0.000000000 Time
-
Nintendo_cf:38:21 Source
-
Broadcast Destination
-
ARP Protocol
-
60 Length
-
172.168.1.1 Info
-
[skytrails@localhost shell]$ paste -s 1 2
-
1 0.000000000 Nintendo_cf:38:21 Broadcast ARP 60 172.168.1.1
-
No. Time Source Destination Protocol Length Info
2、d选项:
-d List 用指定在 List 参数(缺省是)中的一个或多个来更改分隔输出中相应行的定界符。如果在 List 参数中有多个,那么依次重复使用这些字符,直到输出结束。在并行合并中,最后文件的行总是以换行符结束,而不是 List 参数中指定的某个。
下列特殊字符也可用在 List 参数中:
\n
换行符
\t
\\
\0
(不是空字符)
c
扩展字符
必须用引号将对 shell 有特殊意义的引起来。
-s 水平合并第一个文件的后继行。使用此标志, paste 命令在进行下一个文件的操作之前一直处理整个文件。当一个文件的行合并结束时,它强制一个换行然后合并下一个输入文件的行。每次一个地以同样的方式继续处理余下的输入文件。用分隔行,除非使用了 -d 标志。不管 List 参数,文件的最后一个字符强制为换行符。
例如:
-
[skytrails@localhost shell]$ paste -d'\\' -s 1 2
-
1\0.000000000\Nintendo_cf:38:21\Broadcast\ARP\60\172.168.1.1
-
No.\Time\Source\Destination\Protocol\Length\Info
-
[skytrails@localhost shell]$ paste -d'\\' 1 2
-
1\No.
-
0.000000000\Time
-
Nintendo_cf:38:21\Source
-
Broadcast\Destination
-
ARP\Protocol
-
60\Length
-
172.168.1.1\Info
阅读(1162) | 评论(0) | 转发(0) |