zoukankan      html  css  js  c++  java
  • [20170705]diff比较执行结果的内容.txt

    [20170705]diff比较执行结果的内容.txt

    --//有时候需要比较2个命令输出的结果进行比较,比较笨的方法如下,例子:

    $  lsnrctl status LISTENER_SCAN2 > /tmp/b2.txt
    $  lsnrctl status LISTENER_SCAN3 > /tmp/b3.txt
    $  diff -Nur /tmp/b2.txt /tmp/b3.txt

    --//很明显这样要生成2个文件,然后比较,实际上利用shell可以很简单的实现.

    $  lsnrctl status LISTENER_SCAN3 | diff /tmp/2.txt -
    --//这样减少1个文件的生成,可以再减少文件生成吗?

    $  diff <(lsnrctl status LISTENER_SCAN2) <(lsnrctl status LISTENER_SCAN3)

    --//如何理解呢?
    $  echo  <(lsnrctl status LISTENER_SCAN2) <(lsnrctl status LISTENER_SCAN3)
    /dev/fd/63 /dev/fd/62
    --//实际上62,63就是打开的文件句柄.当然执行完马上关闭.

    $  ls -l /dev/fd
    lrwxrwxrwx 1 root root 13 2014-12-11 02:24:57 /dev/fd -> /proc/self/fd

    $  ls -l /dev/fd/
    total 0
    lrwx------ 1 grid oinstall 64 2017-07-05 16:16:07 0 -> /dev/pts/4
    lrwx------ 1 grid oinstall 64 2017-07-05 16:16:07 1 -> /dev/pts/4
    lrwx------ 1 grid oinstall 64 2017-07-05 16:16:07 2 -> /dev/pts/4
    lr-x------ 1 grid oinstall 64 2017-07-05 16:16:07 3 -> /proc/101318/fd

    --//写一个简单的shell脚本就很好理解了(注意这种写法不是很严谨):
    --//我直接读取句柄63,62的内容.

    $  cat a.sh
    #! /bin/bash
    echo  <(lsnrctl status LISTENER_SCAN2) <(lsnrctl status LISTENER_SCAN3)
    diff /dev/fd/63 /dev/fd/62

    $  . a.sh
    /dev/fd/63 /dev/fd/62
    6c6
    < Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2)))
    ---
    > Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN3)))
    9c9
    < Alias                     LISTENER_SCAN2
    ---
    > Alias                     LISTENER_SCAN3
    11,12c11,12
    < Start Date                30-JUN-2017 12:00:03
    < Uptime                    5 days 4 hr. 18 min. 37 sec
    ---
    > Start Date                30-JUN-2017 12:00:58
    > Uptime                    5 days 4 hr. 17 min. 43 sec
    17c17
    < Listener Log File         /u01/app/11.2.0.4/grid/network/log/listener_scan2.log
    ---
    > Listener Log File         /u01/app/11.2.0.4/grid/network/log/listener_scan3.log
    19,20c19,20
    <   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN2)))
    <   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.109)(PORT=1521)))
    ---
    >   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN3)))
    >   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.107)(PORT=1521)))

    --//想到这里,我终于理解exp/imp on the fly.例子:

    $ exp scott/book file=>(gzip >t.dmp.gz) tables=emp
    $ imp scott/book full=y  file=<(gunzip <t.dmp.gz)

  • 相关阅读:
    几个可以通过curl查询公网IP的站点
    CentOS安装 netdata 实时监视 Linux 系统性能
    Linux用ifconfig设置IP、掩码、网关
    Linux添加用户(user)到用户组(group)
    使用密码登陆Amazon EC2
    ulimit 命令详解
    linux命令行光标移动技巧
    阿里云epel源
    用scp实现多服务器文件分发
    2019年春季第二周作业
  • 原文地址:https://www.cnblogs.com/lfree/p/7124479.html
Copyright © 2011-2022 走看看