簡體   English   中英

bash 和 grep 中的正則表達式

[英]regular expression in bash with grep

我正在嘗試打印其中包含任意數量的“=”符號的字符串。 為此,我在 bash 中使用以下命令

cat myfile | grep '^.*=+.*$' 

我正在為字符串的開頭和結尾寫 ^ 和 $

.* 表示任意數量的任意字符。

=+ 表示一個或多個相等 (=) 字符。

但它在執行時沒有顯示任何 output 。

但如果我只是這樣做:

cat myfile | grep '='

我得到了想要的 output 為什么會這樣?

我在這里想念什么?

您使用的正則表達式不是基本的 posix 正則表達式。 例如,它嘗試按字面意思匹配+

你應該嘗試使用

cat myfile | grep -E '^.*=+.*$'

-E用於擴展正則表達式。

Wikipedia 對 posix 基本和擴展正則表達式進行了很好的比較,您還可以看到+只是擴展版本中的元字符:https://en.wikipedia.org/wiki/Regular_expression#POSIX_extended

暫無
暫無

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

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