web-dev-qa-db-ja.com

bash正規表現を使用してファイルの内容を検証する

次のファイルの内容を検証する方法は?

これには、bash正規表現またはawk/sedを使用したその他のアイデアによる単一の整数/浮動小数点数を含める必要があります。

例:

cat  /var/VERSION/Version_F35_project_usa
2.8
3
jango

一致する場合は、それが有効であることを意味する場合は、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
5
αғsнιη

ファイル全体に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
6