[英]Shell script linux, validating integer
此代碼用於檢查字符是否為整數(我認為)。 我試圖理解這是什么意思,我的意思是……該行的每一部分,都在檢查GREP手冊頁,但這對我來說真的很困難。 我在互聯網上找到它。 如果有人能向我解釋grep的一部分……那是什么意思呢?
echo $character | grep -Eq '^(\\+|-)?[0-9]+$'
謝謝大家!!!
分析此正則表達式:
'^(\+|-)?[0-9]+$'
^ - Line Start
(\+|-)? - Optional + or - sign at start
[0-9]+ - One or more digits
$ - Line End
總體來說,它匹配+123
或-98765
或僅9
類的字符串
-E
用於擴展的正則表達式支持, -q
用於grep命令中的安靜模式。
PS:順便說一句,您不需要grep
進行此檢查,可以直接在純bash中執行此操作:
re='^(\+|-)?[0-9]+$'
[[ "$character" =~ $re ]] && echo "its an integer"
我喜歡正則表達式的備忘單:
http://www.cheatography.com/davechild/cheat-sheets/regular-expressions/
這非常有用,您可以輕松分析
'^(+ | - )?[0-9] + $'
如
因此它接受像-312353243或+1243或5678
但不接受:3 456或6.789或56 $(以美元符號表示)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.