[英]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.