Home >Operation and Maintenance >Linux Operation and Maintenance >[20170705] Contents of diff comparison execution results.txt

[20170705] Contents of diff comparison execution results.txt

PHP中文网
PHP中文网Original
2017-07-06 18:16:281560browse

[20170705]diff comparison execution result content.txt

--//Sometimes it is necessary to compare the output results of two commands. The stupid method is as follows, example:

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

--//Obviously, this requires generating two files and then comparing them. In fact, it can be easily achieved using the shell.

$ lsnrctl status LISTENER_SCAN3 | diff /tmp/2.txt -
--//This reduces the generation of one file. Can it reduce the generation of files further?

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

-- //How to understand?
$ echo <(lsnrctl status LISTENER_SCAN2) <(lsnrctl status LISTENER_SCAN3)
/dev/fd/63 /dev/fd/62
--//actually 62 ,63 is the open file handle. Of course, it will be closed immediately after execution.

$ 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

--//Writing a simple shell script is easy to understand (note that this writing method is not very rigorous):
--//I directly read the contents of handle 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 30-JUN-2017 12:00:02 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)))

-- //Thinking of this, I finally understand exp/imp on the fly. Example:

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

The above is the detailed content of [20170705] Contents of diff comparison execution results.txt. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn