簡體   English   中英

Shell腳本Linux,驗證整數

[英]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] + $'

  • ^:行必須以...開頭
  • ():分組
  • \\:ESC字符(因為+表示某些含義...參見下文)
  • + |-:加號或減號
  • ?:0或1個重復
  • [0-9]:數字范圍從0-9
  • +:一個或多個重復
  • $:行尾(不允許更多字符)

因此它接受像-312353243或+1243或5678
但不接受:3 456或6.789或56 $(以美元符號表示)。

暫無
暫無

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

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