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

简介: [20170705]diff比较执行结果的内容.txt --//有时候需要比较2个命令输出的结果进行比较,比较笨的方法如下,例子: $  lsnrctl status LISTENER_SCAN2 > /tmp/b2.

[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)

目录
相关文章
touch-cat-more命令,touch 命令可以创建文件,touch test.txt创建一个txt文件,ls -l 标识为d,头部显示,行,的就是文件的意思,cat查看文件,more支持翻页q
touch-cat-more命令,touch 命令可以创建文件,touch test.txt创建一个txt文件,ls -l 标识为d,头部显示,行,的就是文件的意思,cat查看文件,more支持翻页q
tail命令,tail test.txt查看文件前面10行的文件,tail -f test.txt持续跟踪尾部10行的命令,​Ctrl + C可以停止文件​,`pwd` > work.txt 具体目录
tail命令,tail test.txt查看文件前面10行的文件,tail -f test.txt持续跟踪尾部10行的命令,​Ctrl + C可以停止文件​,`pwd` > work.txt 具体目录
cp mv rm命令,cp 第一个是复制的文件夹,第二个表示复制去的地方,如果复制文件夹需带-r,mv test.txt Desktop/移动文件,mv test2.txt test3.txt不存
cp mv rm命令,cp 第一个是复制的文件夹,第二个表示复制去的地方,如果复制文件夹需带-r,mv test.txt Desktop/移动文件,mv test2.txt test3.txt不存
|
6月前
|
弹性计算 运维 Shell
批量将txt 文件修改为doc 文件
【4月更文挑战第29天】
52 1
ReadMe2.txt 文件内容拷贝 到 新的ReadMe.txt 分析 : 拷贝: 从ReadMe2.txt读取 写入到ReadMe.txt 1.创建两个文
ReadMe2.txt 文件内容拷贝 到 新的ReadMe.txt 分析 : 拷贝: 从ReadMe2.txt读取 写入到ReadMe.txt 1.创建两个文
将cmd中命令输出保存为TXT文本文件
转自:https://www.cnblogs.com/hongten/archive/2013/03/27/hongten_windows_cms.html 例如:将Ping命令的加长包输出到D盘的ping.txt文本文件。
1650 0
|
Linux
Linux命令参数详细解析-diff
diff test redhat test diff-test ~ ~ ...
1012 0