题外话
虽然自己经常上
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
使用换行符作为分隔符,我们能交替地从两个文件中读取行。