次のファイルの内容を検証する方法は?
これには、bash正規表現またはawk/sedを使用したその他のアイデアによる単一の整数/浮動小数点数を含める必要があります。
例:
cat /var/VERSION/Version_F35_project_usa
2.8
一致する場合は、それが有効であることを意味する場合は、grep
を使用します。
grep -P '^[0-9]+(\.[0-9]+)?$' infile.txt
上記の正規表現は、sed
またはawk
または任意のコマンドで使用できます。
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
ファイル全体に10進数の数字が含まれていることを確認する場合は、オプションで.
以上の数字が続き、オプションで改行文字が続きます。
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