[英]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 3
或DST 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 3
或DST 5
一起搜索RX VIDEO
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.