linux paste命令详解

2012-01-23 10:41:13 andy572633 阅读数 43389
  • Linux命令详解

    基本掌握C#Winform水晶报表的设计方法 基本掌握C#Winform水晶报表的使用技巧

    26017课时 0分钟 0人学习 杨猛
    免费试看

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命令还有一个很有用的选项(-)。意即对每一个(-),从标准输入中读一次数据。使用空格作域分隔符,以一个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@
也可以以一列格式显示输出:
wangnc> 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


2018-01-14 11:59:00 weixin_30323631 阅读数 0
  • Linux命令详解

    基本掌握C#Winform水晶报表的设计方法 基本掌握C#Winform水晶报表的使用技巧

    26017课时 0分钟 0人学习 杨猛
    免费试看

linux paste命令用法详解
原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htm
linux下paste命令,可用于合并文件的列。

功能说明:合并文件的列。
语  法:paste [-s][-d ][--help][--version][文件...]
补充说明:paste指令会把每个文件以列对列的方式,一列列地加以合并。

参  数:
 

 -d或--delimiters=  用指定的间隔字符取代跳格字符。
-s或--serial  串列进行而非平行处理。
--help  在线帮助。
--version  显示帮助信息。

在linux中,cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。
粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。

paste将按行将不同文件行信息放在一行。
缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。

paste格式为:
paste -sd -file1

 

 


paste格式为:
paste -d -s -file1 file2
选项含义如下:
 

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

linux paste命令的例子

例子:
 

复制代码代码示例:
wangnc> pg pas1
ID897
ID666
ID982
wangnc> pg pas2
P.Jones
S.Round
L.Clip

1,基本paste命令将pas1和pas2两文件粘贴成两列:
 

复制代码代码示例:
wangnc> paste pas1 pas2
ID897 P.Jones
ID666 S.Round
ID982 L.Clip

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

复制代码代码示例:
wangnc> paste pas2 pas1
P.Jones ID897
S.Round ID666
L.Clip ID982

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

复制代码代码示例:
wangnc> paste -d: pas2 pas1
P.Jones:ID897
S.Round:ID666
L.Clip:ID982

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

复制代码代码示例:
wangnc> paste -s pas1 pas2
ID897 ID666 ID982
P.Jones S.Round L.Clip

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

复制代码代码示例:
wangnc> 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@

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

复制代码代码示例:
wangnc> 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

转载于:https://www.cnblogs.com/liujiacai/p/8282668.html

2008-04-14 10:08:00 weixin_30710457 阅读数 0
  • Linux命令详解

    基本掌握C#Winform水晶报表的设计方法 基本掌握C#Winform水晶报表的使用技巧

    26017课时 0分钟 0人学习 杨猛
    免费试看
linux paste 命令详解


功能说明:合并文件的列。

语  法:paste [-s][-d <间隔字符>][--help][--version][文件...]

补充说明:paste指令会把每个文件以列对列的方式,一列列地加以合并。

参  数:
 -d<间隔字符>或--delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。
 -s或--serial  串列进行而非平行处理。
 --help  在线帮助。
 --version  显示帮助信息。

转载于:https://www.cnblogs.com/wllyy189/archive/2008/04/14/1152193.html

2018-07-04 10:40:42 yexiangCSDN 阅读数 279
  • Linux命令详解

    基本掌握C#Winform水晶报表的设计方法 基本掌握C#Winform水晶报表的使用技巧

    26017课时 0分钟 0人学习 杨猛
    免费试看

paste命令用于合并文件的列。

paste指令会把每个文件以列对列的方式,一列列地加以合并。

语法

paste [-s][-d <间隔字符>][--help][--version][文件...][-s][-d <间隔字符>][--help][--version][文件...]

参数

  • -d<间隔字符>或--delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。
  • -s或--serial  串列进行而非平行处理。
  • --help  在线帮助。
  • --version  显示帮助信息。
  • [文件…] 指定操作的文件路径

 

详解:

 

1 paste的拼凑原理是什么?

这个很简单,和cut的原理几乎一样,就是将几个文件的相应行用制表符连接起来,并输出到标准输出。

paste最简单的使用方法是:

[rocrocket@rocrocket programming]$ cat p1.txt

1
2
3
[rocrocket@rocrocket programming]$ cat p2.txt
a
b
c
[rocrocket@rocrocket programming]$ paste p1.txt p2.txt
1    a
2    b
3    c
[rocrocket@rocrocket programming]$ paste p1.txt p2.txt|sed -n l
1\ta$
2\tb$
3\tc$

看到制表符了吧,它就是默认的间隔符。

2 上面的例子是两个文件的,那三个文件呢?

当然也可以了。看看例子吧:

[rocrocket@rocrocket programming]$ cat p3.txt
I
II
III
[rocrocket@rocrocket programming]$ paste p1.txt p2.txt p3.txt
1    a    I
2    b    II
3    c    III
[rocrocket@rocrocket programming]$ paste p3.txt p2.txt p1.txt
I    a    1
II   b    2
III  c    3

可见paste的结果是和文件列表的顺序有关的。

3 我不想用制表符来间隔,我想用星号(*),可以么?

行的!使用-d符号就可以设定间隔符,这和cut没有两样。看看例子:

[rocrocket@rocrocket programming]$ paste -d '*' p3.txt p2.txt p1.txt
I*a*1
II*b*2
III*c*3

要注意一点,此处一定要把星号用引号括起来哦(单引号双引号均可),否则shell会把星号扩展为当前目录下的文件列表哦,小心小心。

4 我看过paste命令的man,里面提到了一个-s选项,我不懂是什么意思?

这个很好解释,继续上面的例子,看看这个命令:

[rocrocket@rocrocket programming]$ paste -s -d "*" p3.txt p2.txt p1.txt
I*II*III
a*b*c
1*2*3

呵呵,懂了吧,-s就是以每个文件为一个处理单元,将其中的所有行以-d设定的间隔符相连接组成一大行,输出到标准输出中。

 

2014-11-06 15:42:12 b391813529 阅读数 0
  • Linux命令详解

    基本掌握C#Winform水晶报表的设计方法 基本掌握C#Winform水晶报表的使用技巧

    26017课时 0分钟 0人学习 杨猛
    免费试看
 cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。

    粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。

    paste格式为:

    paste -d -s -file1 file2

    选项含义如下:

    -d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @。

    -s 将每个文件合并成行而不是按行粘贴。

    - 使用标准输入。例如ls -l |paste ,意即只在一列上显示输出。

    例子:

    wangnc> pg pas1

    ID897

    ID666

    ID982

    wangnc> pg pas2

    P.Jones

    S.Round

    L.Clip

    基本paste命令将pas1和pas2两文件粘贴成两列:

    wangnc> paste pas1 pas2

    ID897 P.Jones

    ID666 S.Round

    ID982 L.Clip

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

    wangnc> paste pas2 pas1

    P.Jones ID897

    S.Round ID666

    L.Clip ID982

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

    wangnc> paste -d: pas2 pas1

    P.Jones:ID897

    S.Round:ID666

    L.Clip:ID982

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

    wangnc> paste -s pas1 pas2

    ID897 ID666 ID982

    P.Jones S.Round L.Clip

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

    wangnc> 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@

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

    wangnc> 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

    

Linux sed命令实例详解¶ 功能说明:利用script来处理文本文件。 语  法:sed [-hnV][-e