이전 일치 항목보다 작은 다음 패턴과 일치합니다.

이전 일치 항목보다 작은 다음 패턴과 일치합니다.

grep하위 순서만 지정 하려는 QR 코드 줄이 포함된 파일이 있습니다.길이가 늘어나지 않습니다. 예:

다음 시퀀스가 ​​이전 시퀀스보다 작거나 같기 때문에 이는 좋습니다.

####### ###### ### ### ## # # #

이것은 잘못된 것입니다:

### ## ## ### ### ### ###### ##

이것이 내가 시작한 방법입니다.

egrep "[^#](####)+[ ]+(##)+" qr.txt

하지만 계속하는 것이 불가능하다는 것을 깨달았습니다.

답변1

grep -vE '(^| )(#+) .*\2#' <<END
####### ###### ### ### ## # # #
### ## ## ### ### ### ###### ##
END
####### ###### ### ### ## # # #

답변2

그리고 awk:

awk '{l=length($1);for(i=2;i<=NF;i++){if(length($i)>l){next};l=length($i)}}1' file
  • l=length($1)변수를 l첫 번째 필드의 길이로 설정합니다.
  • for(i=2;i<=NF;i++)두 번째 필드부터 시작하여 모든 필드를 반복합니다.
  • if(length($i)>l이 필드의 길이가 마지막 필드의 길이보다 큰 경우:
    • next;다음 줄로 이동합니다.
  • l=length($i)l다음 반복을 위한 변수를 설정합니다 .

관련 정보