[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)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2141638/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檔案內容比較
- VUE中diff比較Vue
- diff詳解,讀懂diff結果
- 執行結果
- awk比較檔案內容的差異
- linux diff比較2個檔案的不同Linux
- [20161020]bbed儲存執行結果.txt
- 比較兩個檔案,求出不同的內容,A-B
- 獲取任務的執行結果
- 解析Oracle執行計劃的結果Oracle
- grequests 執行併發測試與 jmeter 併發結果對比JMeter
- [20170705]理解linux su命令.txtLinux
- 多執行緒並行執行,然後彙總結果執行緒並行
- Java獲取多執行緒執行結果方式的歸納與總結Java執行緒
- 【Spark】 Spark作業執行原理--獲取執行結果Spark
- .NET CORE下最快比較兩個檔案內容是否相同的方法
- lr計算程式執行消耗時間的比較:
- Python的內建比較函式cmp比較原理剖析Python函式
- 在Linux中執行"rm -rf /"的結果Linux
- Spark Task 的執行流程④ - task 結果的處理Spark
- 同樣的sql執行結果不同的原因分析SQL
- 快速定位sql語句執行內容SQL
- 程序和執行緒基礎內容執行緒
- rhel5 執行who -r的結果含義
- Go 多協程記錄執行結果Go
- python執行shell並獲取結果Python
- 執行緒等待兩種方法的喚醒的效率比較執行緒
- JVM上容錯庫的初步比較 - frankelJVM
- codemirror diff-match-match 不同裝置、不同裝置狀態下的對比結果不穩定
- 取內容中的多列的某一列的指令碼 。比較實用指令碼
- 多執行緒-多執行緒兩種方式的圖解比較及區別執行緒圖解
- 批次對比結果集
- 多執行緒的補充 獲取一定時間的執行結果執行緒
- ElasticSearch多層nested查詢、nested過濾排除非結果內容Elasticsearch
- 突然斷電,是否會影響Mysql的執行結果MySql
- python執行系統命令四種方法比較Python
- 檢視Oracle SQL執行計劃方法比較、分析OracleSQL
- java多執行緒:synchronized和lock比較淺析Java執行緒synchronized