簡體   English   中英

使用Linux終端在.txt中找到animal-060,animal-061,animal-062…,animal-069

[英]Find animal-060, animal-061, animal-062 …, animal-069 in .txt using linux terminal

我想使用Linux終端在.txt文檔中找到字符串animal-0 **。 **是60到69之間的數字。我想我必須在以下命令中使用grep和regex: grep -E 'animal-0[60-69]' -E'animal grep -E 'animal-0[60-69]' animallist.txt

這將是正確的命令,還是會找到例如ima6,因為ima60是''中的數字和字母的一部分。 很抱歉語法錯誤,英語不是我的母語。

你很親密! 請記住,除非使用*+等指定,否則正則表達式字符類(方括號之間的集合或范圍)會查找字符范圍,並且只會匹配一次。在您的示例中, [60-69][690-6] [60-69]相同[690-6]將匹配任何單個69在的范圍內,或系統字符0-6 要找到介於60和69之間的數字,我們必須將數字視為一個字符串。

以此為例:假設我們正在尋找的是“ Za”至“ Zj”,而不是“ 60”至“ 69”。 在這種情況下,我們將使用模式Z[aj]

使用上面關於您的問題的示例,我們可以使用“ 6”代替“ Z”並將“ aj”替換為“ 0-9”,從而提供以下模式:

animal-06[0-9]

作為完整的命令,這將是:

grep -E 'animal-06[0-9]' animallist.txt

是的,如果您將使用grep -E 'animal-06[0-9]' animallist.txt ,它將起作用

grep -E 'animal-06[0-9]' animallist.txt 

不,它不會找到ima60。 您的[60-69]也不會按照您的想法去做。 找到一個很好的資源來教RegEx。

暫無
暫無

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

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