Bash正規表現を使用してファイルの内容を確認する

Bash正規表現を使用してファイルの内容を確認する

次のファイルの内容をどのように確認できますか?

これには、単一の整数/浮動小数点に対する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

関連情報