Linux
使用 bash 正則表達式驗證文件內容
如何驗證以下文件內容?
這應該是通過 bash 正則表達式或任何其他帶有 awk/sed 的想法包含單個整數/浮點數。
例子:
cat /var/VERSION/Version_F35_project_usa 2.8
使用
grep
,如果匹配則表示有效:grep -P '^[0-9]+(\.[0-9]+)?$' infile.txt
上面的正則表達式可用於
sed
orawk
或任何命令。sed -n -Ee '/^[0-9]+(\.[0-9]+)?$/p'
awk '/^[0-9]+(\.[0-9]+)?$/'
這裡還檢查文件是否與此正則表達式匹配。
awk '/^[0-9]+(\.[0-9]+)?$/{print "matched";exit} {print "not-matched";exit}' file
如果要檢查整個文件是否包含許多十進制數字,可選地後跟一個
.
和更多數字,然後是可選的換行符,您可以這樣做:is_valid() { awk 'END{exit(!(NR == 1 && /^[0-9]+(\.[0-9]+)?$/))}' < "$1" } if is_valid /var/VERSION/Version_F35_project_usa; then echo the file has the right kind of content else echo >&2 the file does not have the right kind of content fi