cat 和 paste 分别为linux中 纵向 以及 横向合并文本的命令
纵向合并 cat
cat 是 concatenate的缩略,其主要功能是查看文件或纵向合并文件。
对单个文件使用时为查看文件
-n 选项为显示行号
$ cat file1.txt
1 apple
2 banana
3 pear
4 orange
#-n 第一列输出行号
$ cat -n file1.txt
1 1 apple
2 2 banana
3 3 pear
4 4 orange
对多个文件使用时即为纵向合并
$ cat file1.txt
1 apple
2 banana
3 pear
4 orange
$ cat file2.txt
1 pear
2 apple
3 banana
5 kiwi
#查看文件1与文件2(也就是将两个文件纵向合并)
$ cat file1.txt file2.txt
1 apple
2 banana
3 pear
4 orange
1 pear
2 apple
3 banana
5 kiwi
#文件名称仅有数字不同时可以使用以下简略写法
$ cat file[1-2].txt
1 apple
2 banana
3 pear
4 orange
1 pear
2 apple
3 banana
5 kiwi
cat的其他选项
-b --number-nonblank 添加行号,但空白行不添加
-s --squeeze-blank 将连续的空白行缩为一行
-v --show-nonprinting 显示TAB、换行,分页以外的非表示文字
-t ― 显示非表示文字 tab以"^I"显示等
-E --show-ends 行末以"$"表示
-A --show-all 显示所有非表示文字(与-vET相同)
-e ― 显示除tab以外的非表示文字(与-vE相同)
横向合并 paste
paste 与cat类似,但是是 逐行 横向 合并(单纯合并,不进行连接,不改变行的顺序,连接的话用join命令)
#合并file1与file2 , 默认的分隔符为tab
$ paste file1.txt file2.txt
1 apple 1 pear
2 banana 2 apple
3 pear 3 banana
4 orange 5 kiwi
#也可以使用简略写法
paste file[1-2].txt
-d可以指定合并后的分隔符
#指定分隔符为空格
$ paste -d' ' file1.txt file2.txt
1 apple 1 pear
2 banana 2 apple
3 pear 3 banana
4 orange 5 kiwi
#指定分隔符为,
$ paste -d',' file1.txt file2.txt
1 apple,1 pear
2 banana,2 apple
3 pear,3 banana
4 orange,5 kiwi
-s 可以实现按字段合并(按行横向合并的转置)
$ paste -d' ' -s file1.txt file2.txt
1 apple 2 banana 3 pear 4 orange
1 pear 2 apple 3 banana 5 kiwi