次のファイルの内容をどのように確認できますか?
これには、単一の整数/浮動小数点に対するbash正規表現またはawk / sedの他のアイデアを含める必要があります。
例:
cat /var/VERSION/Version_F35_project_usa
2.8
答え1
.
ファイル全体に複数の10進数が含まれていることを確認し、オプションで1つ以上の数字とオプションの改行文字が続いていることを確認するには、次のようにします。
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
答え2
を使用してください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