Bash 정규식을 사용하여 파일 내용 확인

Bash 정규식을 사용하여 파일 내용 확인

다음 파일 내용을 어떻게 확인할 수 있나요?

여기에는 단일 정수/부동 소수점에 대한 bash 정규식 또는 awk/sed의 다른 아이디어가 포함되어야 합니다.

예:

cat  /var/VERSION/Version_F35_project_usa
2.8

답변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

관련 정보