码迷,mamicode.com
首页 > 系统相关 > 详细

Linux diff tr tee 命令

时间:2017-12-31 23:32:44      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:linux命令

diff比较两文件或目录的不同之处

而且都是以第一个文件来作为操作对象:

第一个文件与第二个文件相比多的,要删除,少的要增加。就是最后会把第一个文件变得的第二个文件一样。

 

举例两文件1.txt2.txt

技术分享图片

技术分享图片

1d0:第一个文件第一行删除才和第二个文件第0行一样(才就是最开头行)

< Hi,

2a2:第一个文件第二行增加才和第二个文件第二行一样

> Hi,

4,5c4:第一个文件第四,五行改变才和第二个文件第四行一样

< I am fine,

< Thank you.

---

> I am fine.

'<'代表删除的行,而'>'代表添加的行。

技术分享图片

y--side-by-side  以并列的方式显示文件的异同之处。

-W<宽度>--width<宽度>  在使用-y参数时,指定栏宽。

|”表示前后2个文件内容有不同

<”表示后面文件比前面文件少了1行内容

>”表示后面文件比前面文件多了1行内容


技术分享图片

-c  显示全部内文,并标出不同之处。

“+” 表示后面的文件比前面多了1行内容 

“-” 表示后面的文件比前面少了1行内容

“!”  表示前后2个文件内容有不同

 

"---"表示变动前的文件,"+++"表示变动后的文件


技术分享图片

-q--brief  仅显示有无差异,不显示详细的信息。

技术分享图片

-u,-U--unified=  以合并的方式来显示文件内容的不同。

 

前面的"-1,5"分成三个部分:减号表示第一个文件,"1"表示第1行,"5"表示连续5行。合在一起,就表示下面是第一个文件从第1行开始的连续5行。同样的,"+1,4"表示变动后,成为第二个文件从第1行开始的连续4行。

如何理解,下图:

技术分享图片

技术分享图片

如果两个文件含有相同的文本但是大小写不同,diff命令仍会默认报告它不同

 -i 忽略大小写

但这样就会没有输出生成,因为当两个文件相同时的默认行为,如果想看到提示说相同的话:

 -s 选项报告两个文件相同


技术分享图片

使用 -b 忽略空格

比较两个文件不同,并生产补丁

技术分享图片


除了文件外,diff命令还可以比较两个目录

技术分享图片


vimdiff

只有一个文件中有的行,颜色相对

两个文件中都存在,但是包含差异的行为一种颜色,引起差异还会加字体背景

技术分享图片

ctrl + w + w 左右切换 或者上下切换

dp  把左边光标所在的行复制到右边对应的行

do  把右边的复制到左边光标所在的对应的行

https://jingyan.baidu.com/article/ae97a646da05debbfd461d33.html



tr

容易地实现 sed 的许多最基本功能。

可以用一个字符来替换另一个字符,或者可以完全除去一些字符。也可以用来除去重复字符

技术分享图片

逐个字符的替换且替换不修改源文件


技术分享图片

小写替换成大写


技术分享图片

去除Z的字符


技术分享图片

删除换行符

PS:不可见字符都得用转义字符来表示的,这个都是统一的



技术分享图片

将换行符替换成:


技术分享图片

除了a-z 以及换行符以外的,都删除

除了1-2数字以外的,都删除


技术分享图片

删除重复的


tee

我们平常比如 ls >a.txt,这时我们就不能看到输出了

ls | tee /tmp/ls.txt

-a 追加输入


技术分享图片

技术分享图片

把标准错误也输入到文件里


技术分享图片

虽然重复打印,但追加到文件中的只有一次



Linux diff tr tee 命令

标签:linux命令

原文地址:http://blog.51cto.com/11755576/2056280

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!