簡體   English   中英

在外殼文件中使用grep

[英]Using grep in shell file

我有一個關於使用Shell腳本在文件中獲取數據的問題。 我想在某些行中搜索多個條件。

例如,如果我有此文件:

TX VIDEO ID 34 B 33 SIZE 672 SRC -1 DST 11 T 0.1 1
TX CBR ID 35 B 35 SIZE 10 SRC -1 DST 11 T 0.1 1
RX VOIP ID 0 B 0 SIZE 32 SRC -1 DST 3 D 0.001 0
RX VOIP ID 8 B 8 SIZE 32 SRC -1 DST 5 D 0.001 1
RX VOIP ID 20 B 20 SIZE 32 SRC -1 DST 8 D 0.001 1
RX VIDEO ID 9 B 9 SIZE 1490 SRC -1 DST 5 D 0.002 1
RX VIDEO ID 21 B 21 SIZE 1490 SRC -1 DST 8 D 0.002 1
TX INF_BUF ID 37 B 10 SIZE 776 SRC 1 DST 5 T 0.102 1
TX INF_BUF ID 39 B 22 SIZE 776 SRC 2 DST 8 T 0.102 1

在此文件中,我分別具有"RX VIDEO""TX VIDEO"行。 我要從中獲取數據的第一個條件是"DST 3 && DST 5"所有"RX VIDEO" "DST 3 && DST 5"

我假設您要使用RX VIDEO行也包含DST 3DST 5

$ grep 'RX VIDEO.*DST [35]' a.txt
RX VIDEO ID 9 B 9 SIZE 1490 SRC -1 DST 5 D 0.002 1

參考

對於多個條件,您可以通過管道將輸出輸出到另一個grep。

如果要在文件中搜索具有AAA和BBB的行,則可以執行以下操作:

grep 'AAA' file | grep 'BBB'

或者,您也可以只用一個grep使用正則表達式進行搜索:

grep -e 'AAA.*BBB' -e 'BBB.*AAA' file

如果任何-e選項之后的表達式都匹配,則將得到結果。 這意味着它的行為類似於

這兩個示例都將找到類似以下內容的行:

AAABBB
AAA BBB
BBB AAA
BBBAAA
AAA-BBB
AAA---BBB
AAAA BBB
xAAAAAAA BBB AAAAA

等等。

對於您的示例,它可能是:

grep 'RX VIDEO' file | grep -e 'DST 3' -e 'DST 5'

這將與DST 3DST 5一起搜索RX VIDEO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM