此代碼用於檢查一個字符是否爲整數(我認爲)。我試圖理解這意味着什麼,我的意思是......該行的每一部分,檢查GREP手冊頁,但對我來說真的很難。我在網上找到它。如果任何人都可以解釋我的grep的部分......拿什麼每樣東西放在那裏:shell腳本linux,驗證整數
echo $character | grep -Eq '^(\+|-)?[0-9]+$'
感謝的人!
此代碼用於檢查一個字符是否爲整數(我認爲)。我試圖理解這意味着什麼,我的意思是......該行的每一部分,檢查GREP手冊頁,但對我來說真的很難。我在網上找到它。如果任何人都可以解釋我的grep的部分......拿什麼每樣東西放在那裏:shell腳本linux,驗證整數
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 $(如美元符號) 。
謝謝男人...即時通訊試圖瞭解所有這些東西在Linux中,我很新這個..我會繼續努力 –
不客氣,很高興它爲你工作。 – anubhava
在這裏,我發現這一點,任何需要它的人:http://tldp.org/LDP/abs/html/x17046.html –