您的位置:首页 > 运维架构 > Linux

linux下paste、diff、meld的使用

2013-11-21 13:52 369 查看
linux下paste、diff、meld的使用

非常实用的几个小命令,可用于对文件、目录进行处理。
paste 逐行合并两个文件
-d 指定两个文件合并后每行之间的分隔符,如:

-d " " 以空格作为行之间的分隔符。

-d "\t" 以tab键作为行之间的分隔符。

-d "任意字符" 以"任意字符"作为行之间的分隔符。
-s paste one file at a time instead of in parallel
将合并后的行导入新文件中:

paste -d " " a b > c

例如:

[root@localhost aaa]# more a
1
2
3
[root@localhost aaa]# more b
a
b
c
[root@localhost aaa]# paste a b
1   a
2   b
3   c
[root@localhost aaa]# paste -d " " a b
1 a
2 b
3 c
[root@localhost aaa]# paste -d ":" a b
1:a
2:b
3:c
[root@localhost aaa]# paste -s a b
1   2   3
a   b   c


diff 逐行比较文件的不同
[root@localhost aaa]# diff a b
1,3c1,3
< 1
< 2
< 3
---
> a
> b
> c
其中1,3表示行号1-3,c表示修改,即不同。常用的还有:

a表示多余的行;d表示删除的行,即少的行。

以"<"开头的行属于第一个文件,以">"开头的行属于第二个文件。

diff也可比较目录的不同,但是不太方便。

diff有一个"-c"选项会以上下文的形式显示两个文件的不同之处,文件时间不同也会进行比较,行中不同的地方会在此行前加"!":

[root@localhost aaa]# diff -c a b
*** a   2013-11-06 13:39:31.000000000 +0800
--- b   2013-11-06 15:11:04.000000000 +0800
***************
*** 1,3 ****
! 1
! 2
! 3
--- 1,3 ----
! a
! b
! c


meld 常用于比较目录中的文件的不同,会将目录中多余的文件和不同的文件都显示出来,比较容易观察。
如果机器上没有此命令,那么需要安装meld,centos上可以配好yum后直接"yum install meld";ubuntu上可以直接"aptitude install meld"安装。安装好之后在命令行上输入meld,会生成一个图形界面,点击file->new,可以比较文件、目录、版本的不同。如下:




点击Directory Comparsion后输入两个目录的路径进行比较:




结果非常容易分辨,划横线的表示多的,文件内容不一样的也会高亮显示出来。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 使用 paste diff meld