2012年8月10日星期五

10个paste命令的例子

题外话

虽然自己经常上cnbeta看新闻刷评论,也在hacknews看帖子,还上reddit看好文长见识,偶
尔也逛逛stackoverflow.但一直觉得没什么提高,就跟看体育新闻八卦新闻似的,过了也就
过了。问题症结在哪里?看了这篇博文给了我些许启发,就像是给我打了兴奋剂,重新燃起
我日刷一博的雄心。但我现在已经淡定了很多,日刷一博,一夜七次也只能是想想而已,拖
延症是要长期艰苦卓绝的斗争才有可能取得胜利的。所以我要求放低一点,以后看到好文
(难易不定,不过水平有限,基本上该都不难),尝试着翻译翻译,也算是不白费了浏览的
时间。



10个paste命令的例子

来源:原文地址

在这篇文章中,我们将在一些例子中看看怎么使用paste。按照man里的定义,paste命令是
用来 *合并文件行* 的。它对合并单文件的行和合并多个文件的行都是非常有用的。这篇文章
分为两个部分:
1. 单文件处理中的paste命令例子
2. 多文件处理中的paste命令例子

让我们先看看例子要处理的文件file1的内容:
  $ cat file1
  Linux
  Unix
  Solaris
  HPUX
  AIX

单文件paste命令


1. paste命令不带任何参数操作单文件时,与cat命令相同
     $ paste file1
     Linux
     Unix
     Solaris
     HPUX
     AIX
2. 连接文件中的所有行
     $ paste -s file1
     Linux Unix Solaris HPUX AIX
-s 选项连接文件中的所有行。因为没有指定分隔符,默认使用tab来分隔不同列。
3. 使用逗号分隔符连接所有行
     $ paste -d, -s file1
     Linux,Unix,Solaris,HPUX,AIX
-d 选项用来指定分隔符。同时使用-d和-s,将文件中的所有行连接为一行。
4. 以两列的形式合并文件行
     $ paste - - < file1
     Linux Unix
     Solaris HPUX
     AIX 
“-”从标准输入中读入一行。两个“-”读两行,并且按照两列粘帖。 5. 使用冒号分隔符以两列合并文件行
       $ paste -d':' - - < file1
       Linux:Unix
       Solaris:HPUX
       AIX:
这与每两行连接文件相同。 6. 以三列合并文件行
       $ paste - - - < file1
       Linux Unix Solaris
       HPUX AIX 
7. 合并文件成三列,使用两个不同的分隔符
       $ paste -d ':,' - - - < file1
       Linux:Unix,Solaris
       HPUX:AIX,
-d 选项可以接受多个分隔符。第1列和第2列用“:”分隔,第2列和第3列用','分隔。

多文件paste命令

我们先看看file2的内容:
  $ cat file2
  Suse
  Fedora
  CentOS
  OEL
  Ubuntu
1. 以并排的方式粘帖两个文件
       $ paste file1 file2
       Linux     Suse
       Unix     Fedora
       Solaris CentOS
       HPUX     OEL
       AIX     Ubuntu
paste命令这里被用来以并排的方式合并多个文件。就像上面例子显示的那样,文件是以 并排的方式显示的。 2. 并排粘帖两个文件,使用逗号分隔符
       $ paste -d, file1 file2
       Linux,Suse
       Unix,Fedora
       Solaris,CentOS
       HPUX,OEL
       AIX,Ubuntu
3. paste命令也可以在多文件处理中使用标准输入
     $ cat file2 | paste -d, file1 -
     Linux,Suse
     Unix,Fedora
     Solaris,CentOS
     HPUX,OEL
     AIX,Ubuntu
下面也一样:
     $cat file1 | paste -d, - file2
     Linux,Suse
     Unix,Fedora
     Solaris,CentOS
     HPUX,OEL
     AIX,Ubuntu
再来一个(译注:注意与上面两个例子是不同的):
     $ cat file1 file2 | paste -d, - -
     Linux,Unix
     Solaris,HPUX
     AIX,Suse
     Fedora,CentOS
     OEL,Ubuntu
4. 从两个文件中交替读一行
     $paste -d'\n' file1 file2
     Linux
     Suse
     Unix
     Fedora
     Solaris
     CentOS
     HPUX
     OEL
     AIX
     Ubuntu
使用换行符作为分隔符,我们能交替地从两个文件中读取行。

没有评论:

发表评论