導航:首頁 > 文件目錄 > linux查找gz文件的內容

linux查找gz文件的內容

發布時間:2023-08-12 09:17:10

linux xargs grep zgrep命令

xargs 是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具,它能夠捕獲一個命令的輸出,然後傳遞給另外一個命令。之所以會用到這個命令,關鍵是由於 很多命令不支持管道來傳遞參數 ,而日常工作中就有這個需要,所以就有了 xargs 命令。

我們經常會用grep命令在文件中查找需要的內容,比如現在一個文件夾裡面有9個文件,有三種格式txt, csv和gz壓縮文件。

123裡面存的內容都一樣為

456裡面存的內容也一樣為

789裡面存的都是

如果我現在要從所有的文件裡面找「apple」

我會得到下面的結果,你會發現 grep不能從gz文件中查找內容

zgrep 這個命令可以解決這個問題,這樣就不需要先解壓然後再去查找了

會得到如下結果,顯示了所有文件格式中找到的「apple」,並且顯示了匹配的行號

如果只想在符合某種特徵的文件中找你感興趣的內容呢?比如在文件名中包含123的文件中查找「apple」。這時候就需要管道了,你需要先找到這樣的文件然後再從中找「apple」

第一步找到名字中包含123的文件

會得到文件名中包含123的所有文件

第二步查找「apple」

然後我們再來從中找「apple」,你會發現下面這條命令不work,你啥都得不到

這就是我們開篇提到的, 很多命令不支持管道來傳遞參數。 這個時候 xargs 就派上用場了

同時用上 zgrep ,這樣gz文件也一起找了

那麼,如果我們想從某一種特定格式的文件中(比如csv文件)找特定的內容該怎麼做呢?大家應該能觸類旁通,舉一反三了吧!

Linux xargs grep zgrep命令​

❷ linux查找文件內容命令

搜索、查找文件當中的內容,一般最常用的是grep命令,另外還有egrep, vi命令也能搜索文件裡面內容

1:搜索某個文件裡面是否包含字元串,使用grep "search content" filename1, 例如

$ grep ORA alert_gsp.log

$ grep "ORA" alert_gsp.log

例如我們需要搜索、查找utlspadv.sql文件中包含ORA的字元內容

[oracle@DB-Server admin]$ grep "ORA" utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
-- 0 |<PS> =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ""
-- |<PR> DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=> 100% 0% 0% "" |<PR> ...
-- =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% "" |<PR> ...
-- |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00
-- |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
[oracle@DB-Server admin]$

如上所示,這個是一個模糊匹配,其實我是想要查看ORA這類錯誤,那麼我要過濾掉哪一些沒有用的,搜索的內容修改一下即可(當然也可以使用特殊參數,後面有講述),如下所示。

[oracle@DB-Server admin]$ grep "ORA-" utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
[oracle@DB-Server admin]$

7:有些場景,我們並不知道文件類型、或那些文件包含有我們需要搜索的字元串,那麼可以遞歸搜索某個目錄以及子目錄下的所有文件

[oracle@DB-Server ~]$ grep -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym gv$temp_space_header

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql: FROM gv$temp_space_header

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym v$temp_space_header;

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym gv$temp_space_header;

[oracle@DB-Server ~]$

8:如果我們只想獲取那些文件包含搜索的內容,那麼可以使用下命令

[oracle@DB-Server ~]$ grep -H -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql

[oracle@DB-Server ~]$ grep -H -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql

/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql

[oracle@DB-Server ~]$

9:如果只想獲取和整個搜索字元匹配的內容,那麼可以使用參數w

你可以對比一下兩者的區別

[oracle@DB-Server admin]$ grep -w "ORA" utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
[oracle@DB-Server admin]$ grep "ORA" utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
-- 0 |<PS> =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ""
-- |<PR> DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=> 100% 0% 0% "" |<PR> ...
-- =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% "" |<PR> ...
-- |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00
-- |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
[oracle@DB-Server admin]$

10: grep命令結合find命令搜索

[oracle@DB-Server admin]$ find . -name '*.sql' -exec grep -i 'v$temp_space_header' {} ; -print
create or replace view v_$temp_space_header as select * from v$temp_space_header;
create or replace public synonym v$temp_space_header for v_$temp_space_header;
create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
create or replace public synonym gv$temp_space_header
FROM gv$temp_space_header
./catspace.sql
drop public synonym v$temp_space_header;
drop public synonym gv$temp_space_header;
./catspacd.sql
[oracle@DB-Server admin]$

11: egrep -w -R 'word1|word2' ~/klbtmp

12: vi命令其實也能搜索文件裡面的內容,只不過沒有grep命令功能那麼方便、強大。

❸ linux中怎麼查看壓縮包中的內容

用zcat命令和bzcat命令來讀取壓縮包內容。
如果後綴名為.gz的 就用zcat
如果後綴名為.bz2的,就用bzcat

❹ linux 查看壓縮包里文件用什麼命令

僅僅是查看壓縮包裡面的文件列表,就只需要將解壓壓縮包的命令裡面的-x選項換成-t選項就可以了。而專解壓壓縮包的命令是這樣的:
tar -jxv -f tar.bz2文件名
或者是:tar -zxv -f tar.gz文件名
其中命令里的-j是解壓tar.bz2壓縮包的選屬項,而-z是解壓tar.gz壓縮包的選項,沒有這兩個選項是無法查看壓縮包裡面的文件列表的;-t參數表示只查看當前不解壓(所以記得將上面的命令的x換成t就可以了),-v表示列出文件的詳細信息;-f選項指定要查看的壓縮包文件名,它後面要跟壓縮包文件名。

❺ linux下如何在不解壓tar.gz包的情況下,grep 包里文件的一些內容。

~⮀filetmp.tar.gz
tmp.tar.gz:gzipcompresseddata,lastmodified:TueMar312:59:132015,fromUnix
~⮀tar-tftmp.tar.gz|grepmain.c
tmp/main.c
~⮀

❻ Linux里怎樣查找文件內容

Linux查找文件內容的常用命令方法。
從文件內容查找匹配指定字元串的行:
$ grep "被查找的字元串" 文件專名
例子:在當前屬目錄里第一級文件夾中尋找包含指定字元串的.in文件
grep "thermcontact" */*.in
從文件內容查找與正則表達式匹配的行:
$ grep –e 「正則表達式」 文件名
查找時不區分大小寫:
$ grep –i "被查找的字元串" 文件名
查找匹配的行數:
$ grep -c "被查找的字元串" 文件名
從文件內容查找不匹配指定字元串的行:
$ grep –v "被查找的字元串" 文件名
從根目錄開始查找所有擴展名為.log的文本文件,並找出包含」ERROR」的行
find / -type f -name "*.log" | xargs grep "ERROR"
例子:從當前目錄開始查找所有擴展名為.in的文本文件,並找出包含」thermcontact」的行
find . -name "*.in" | xargs grep "thermcontact"

閱讀全文

與linux查找gz文件的內容相關的資料

熱點內容
ef資料庫備注 瀏覽:824
iae的配置文件 瀏覽:454
簡單九宮格密碼 瀏覽:89
word2010表格調整行距 瀏覽:960
cad只顯示保存一個plt文件 瀏覽:500
街頭籃球新版本技能兌換券 瀏覽:849
家庭如何做好網路營銷 瀏覽:465
如何設置胎壓監測數據 瀏覽:530
降噪工具 瀏覽:692
obs編程是什麼意思 瀏覽:859
怎麼看c4d打開了多少個文件 瀏覽:792
蘋果銀河高清壁紙 瀏覽:811
怎麼從蘋果電腦垃圾桶找迴文件 瀏覽:771
介面文件不能用action寫嗎 瀏覽:85
svn代碼提交規范 瀏覽:642
在宣讀多少號文件時怎麼讀數字 瀏覽:921
網站中的區域網訪問量是什麼意思 瀏覽:397
蘋果啟動助理識別不到鏡像文件 瀏覽:670
為什麼每次文件都問是否改變應用 瀏覽:232
pinterestapp怎麼進去 瀏覽:968

友情鏈接