linux下paste、diff、meld的使用
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
例如:
[[email protected] aaa]# more a 1 2 3 [[email protected] aaa]# more b a b c [[email protected] aaa]# paste a b 1 a 2 b 3 c [[email protected] aaa]# paste -d " " a b 1 a 2 b 3 c [[email protected] aaa]# paste -d ":" a b 1:a 2:b 3:c [[email protected] aaa]# paste -s a b 1 2 3 a b c
diff 逐行比较文件的不同
[[email protected] aaa]# diff a b 1,3c1,3 < 1 < 2 < 3 --- > a > b > c
其中1,3表示行号1-3,c表示修改,即不同。常用的还有:
a表示多余的行;d表示删除的行,即少的行。
以"<"开头的行属于第一个文件,以">"开头的行属于第二个文件。
diff也可比较目录的不同,但是不太方便。
diff有一个"-c"选项会以上下文的形式显示两个文件的不同之处,文件时间不同也会进行比较,行中不同的地方会在此行前加"!":
[[email protected] 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后输入两个目录的路径进行比较:
结果非常容易分辨,划横线的表示多的,文件内容不一样的也会高亮显示出来。
转载于:https://blog.51cto.com/asange/1329517