문서의 첫 줄에 패턴을 일치시켜야합니다. 필드 구분 기호는 ":"이며 패턴을 따르지 않을 때 잘못된 메시지를 가져 오려고합니다. 공백이 있거나없는 필드를 구별해야합니다. 나는 이런 식으로 뭔가를 사용하십시오공백없이 일치하는 awk 패턴
$1
이
"AAABBBF43T5Y"
하고
"AABBBF 43T5Y"
경우에도 내가 얻을 필요가있는 경우
awk -F ":" '{if (($1 ~/^@[A-Za-z0-9]*/) && ($2 ~/[0-9]*/) && ($3 ~/[0-9]*/) && ($4 ~/[0-9]*/) && ($5 ~/[0-9]+/)){print "ok"} else { print "no"}}'
내가 "OK"수 $ 1 또는 다른 fi에 공간이있을 때 "아니오" 노년.
제안 사항?
OK, 약간 혼란 스럽습니다.
나는 이런 일이 :
@HWUSI-EAS100R:6:73:941:1973#0/1
을 그리고 각 필드를 확인합니다. 첫 번째 문자는 임의의 문자, 두 번째 숫자 만 포함 할 수 있습니다. 하지만 공백은 허용되지 않으므로 다음과 같이 올바르지 않습니다.
@HWUSI-E AS100R:6:73:9 41:1973#0/1
의견에 진심으로 감사드립니다.
입력 파일에서 두 줄의 예제를 표시 할 수 있습니다. 하나는 "ok", 하나는 "NOK"줄입니까? 아마도 더 쉬운 해결책 일 것입니다. – Kent
당신은 모든 정규 표현식을'^'와'$'로 고정시킬 필요가 있습니다. 제 대답을보십시오. –