RHEL 6 Linux shell编程中diff与vimdif的使用

linux比较2个文件的区别有两个命令:

(1)diff (2)vimdiff

cp /etc/grub.conf hello

在hello文件的末尾添加zhangsan

使用diff比较2个文件的区别:

[root@rhel ~]# diff hello /etc/grub.conf

18d17

< zahnsgan

vimdiff hello /etc/grub.conf

+-- 11 lines: grub.conf generated by anac|+ +-- 11 lines: grub.conf generated by ana

splashimage=(hd0,1)/grub/splash.xpm.gz   |  splashimage=(hd0,1)/grub/splash.xpm.gz

hiddenmenu                               |  hiddenmenu

title Red Hat Enterprise Linux (2.6.32-27|  title Red Hat Enterprise Linux (2.6.32-2

root (hd0,1)                     |          root (hd0,1)

kernel /vmlinuz-2.6.32-279.el6.i6|          kernel /vmlinuz-2.6.32-279.el6.i

initrd /initramfs-2.6.32-279.el6.|          initrd /initramfs-2.6.32-279.el6

zahnsgan                                 |  -------------------------------

使用diff比较文件只显示区别行,文件较短不易看出文件区别。

使用vimdiff比较文件,在新窗口打开2个文件,不同之处以红色显示,很容易看到文件的不同之处,如果文件较长则不易比较。

Diff命令的作用不仅仅是这样,我们也可以使用diff做文件补丁的修改:

编辑2个file文件,他们的区别仅在最后一行。

生成文件补丁:

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/Linux/

将文件补丁导入一个文件中:

注:命令解释:通过补丁文件将旧文件更新做新文件,同时将旧文件备份。

备份的文件以orig结尾。

时间: 2024-10-24 11:35:17

RHEL 6 Linux shell编程中diff与vimdif的使用的相关文章

linux shell编程中date命令的用法

在linux shell编程中,经常用到日期的加减运算 以前都是自己通过expr函数计算,很麻烦 其实date命令本身提供了日期的加减运算 非常方便.例如:得到昨天的时间 date +%Y%m%d --date="-1 day" date 用法: date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] date 可以用来显示或设定系统的日期与时间. 令1.在显示方面,使用者可以设定欲显

Linux shell编程基础 三、shell的基本结构

shell结构大体是由设定变量.内置命令.shell的语法结构.函数组成. 使用实例说明:test.sh #!/bin/bash #说明使用/bin/bash作为这个脚本的解释器 #定义一个函数 function my_fun () { echo "Hello, $1,today is $2" } #定义连个变量 name=$1 today=`date` #函数调用 my_fun "$name" "$today" 上面的这个脚本要想运行还需要做一

Linux shell编程 12 ---- 管道+I/O重定向

 1 管道简介      1 管道技术是Linux的一种基本的进程间通信技术,它利用先进先出排队模型来指挥进程间的通信.对于管道,我们可以形象的理解为连接两个实体的一个单向连接器      2 Shell编程中管道符号是"|",命令直接利用管道进行通信的一般格式         command1 | command2 | command3 | ... | commandn         command1-commandn是n个命令,如果没有管道那么结果将会直接显示在Shell中,当S

Linux shell脚本中连接字符串的方法

 这篇文章主要介绍了Linux shell脚本中连接字符串的方法,大家参考使用吧 如果想要在变量后面添加一个字符,可以用一下方法:   代码如下: $value1=home $value2=${value1}"=" echo $value2     把要添加的字符串变量添加{},并且需要把$放到外面. 这样输出的结果是:home=,也就是说连接成功.   又如:     代码如下: [root@localhost sh]# var1=/etc/ [root@localhost sh]#

shell 编程 语句-shell编程中的语句问题,求解答

问题描述 shell编程中的语句问题,求解答 #!/bin/bash use=cat cat_greet() { echo "hello cat" } if [ $use=cat ] then cat_greet fi no_exit=1 [[ $no_exit -eq 1 ]]&& exit(){true;} exit 这个程序输出结果为 hello cat 我想问的是 [[ $no_exit -eq 1 ]]&& exit() {true;} 这一句

Shell编程中Shift的用法

http://www.cnblogs.com/image-eye/archive/2011/08/20/2147153.html 前一个例子看明白了,后面还没看清楚 Shell编程中Shift的用法 位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常有用的 Unix 命令:shift.我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当

shell编程中if [[ ! ${a} =~ ^[0-9]+ ]]条件判断式如何工作的?

问题描述 shell编程中if [[ ! ${a} =~ ^[0-9]+ ]]条件判断式如何工作的? if [[ ! ${a} =~ ^[0-9]+ ]]这个语句具体是怎么工作的?我只知道这个好像是如果变量a不是以数字开头就执行if语句,但是特别的: =~是什么意思? ^[0-9]+ 是什么意思?另外这个判断使用的是扩展正则表达式? 解决方案 这里只有^[0-9]+是正则表达式,表示一个数字,别的都不是正则. 解决方案二: 只是原样的字符 解决方案三: =~意思是匹配后面的正则式,^是匹配开头,

linux shell编程 sed指令问题

问题描述 linux shell编程 sed指令问题 在同一个目录下有两个文件oracle-ds.xml,postgresql-ds.xml 我分别执行指令 sed -n '/^ */p' oracle-ds.xml sed -n '/^ */p' postgresql-ds.xml 为什么oracle-ds.xml 的可以匹配到,而postgresql-ds.xml无法匹配到,两个文件都有 查了半天没弄懂,求指点 我粘下文件内容: oracle-ds.xml: Oracle9i 2330201

linux多线程编程中如何等待过个线程退出

问题描述 linux多线程编程中如何等待过个线程退出 linux多线程编程中,如果线程A创建了线程B,我知道用pthread__ join可以令线程A 阻塞然后等待线程B的退出.如果线程A创建了三个线程B,C,D,执行完的先后顺序不知.想让A必须等待三个线程都退出后再退出,应该怎么做? 连用pthread__join三次吗???但是第一次用了pthread__join后,A不就阻塞了吗? 解决方案 多线程编程(一):线程创建和退出Linux多线程编程(创建线程)Linux多线程编程(创建线程)