просто используйте stat tool:
stat filename
с ним вы можете видеть все опции, так что с -f вы могли бы указать собственный формат:
man stat
Используйте 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
Если вы хотите проверить, что файл в целом содержит ряд десятичных цифр, за которыми, возможно, следует .
и другие цифры, а затем необязательный символ новой строки, вы можете сделать:
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