egrep은 문자열과 개행 문자를 지정하는 데 사용됩니다.

egrep은 문자열과 개행 문자를 지정하는 데 사용됩니다.

미리 지정된 문자열 목록을 받습니다. 여러 텍스트 파일(아래 예)에서 목록에 있는 문자열 중 하나로 시작하지 않는 문자열을 검색하고 싶습니다. 때로는 텍스트 파일에 빈 링크가 나타나는 경우가 있습니다. 내 코드에서는 해당 링크를 찾았지만 나도 원하지 않습니다.

지금까지 내 스크립트는 다음과 같습니다.

# The list of strings I receive
ENTRY_LIST="ACK AFF AUTH CON DIS EDITOR FUND JEL MISC PHD REF SEM TITLE VIS"

# I transform blanks to | in order to use egrep on in
TRANSFORMED_ENTRY_LIST=${ENTRY_LIST// /\|}
egrep -rvn ^"($TRANSFORMED_ENTRY_LIST):"

샘플 데이터는 다음과 같습니다.

TITLE: xxxx
AUTH: yyy
FUND: ZZZ

TITLE: BERLIN
AUTH: STUTTGART
AFF: WIEN
ACK: KIEL
CNO: HAMBURG
SEM: BRESLAU
FUND: DANZIG

해당 줄 CNO: HAMBURG은 잘못되었지만 내 코드에는 4번 줄도 표시됩니다.

답변1

|^$정규식 끝에 다음을 추가하세요 .

egrep -rvn "^($TRANSFORMED_ENTRY_LIST):|^\$"

그러면 입력에서 빈 줄이 거부됩니다.

관련 정보