매개변수 파일에서 일치하지 않는 텍스트 찾기

매개변수 파일에서 일치하지 않는 텍스트 찾기

매개변수 파일이 있는데 단어 하나를 가져온 다음 해당 단어만 삭제하고 나머지는 모두 남겨두려고 합니다. 예를 들어:

예는 다음과 같습니다:

#Parameter File
CAT=SammyISaGreatCat

이것은 내 코드 문자열입니다.

export CAT=`grep CAT $PARFILE | grep -Ev "CAT="`

나는 SammyIsaGreatCat매개변수 파일에서 가져온 유일한 것이 되고 싶습니다. 어떻게 해야 하나요?

답변1

다음 명령을 사용하여 매개변수를 읽을 수 있습니다.

export CAT=$(grep -i "^cat=" "${PARFILE}" | head -1 | cut -d= -f2-) 

추가 검사를 통해 cat 대소문자를 구분하지 않고 CAT=.

답변2

또 다른 해결책은 다음과 같습니다 awk.

export CAT=$(awk -F= 'BEGIN{OFS=FS}$1~/^\W*CAT\W*$/{$1="";r=substr($0,1+length(FS))};
                        END{print r}' "$PARFILE")

이것의 장점은 다음과 같습니다.

  • 키 주위의 선택적 공백을 유연하게 사용 \W*, CAT.
  • 결과가 여러 개인 경우 마지막 결과만 인쇄됩니다.
  • =가치를 가지고 일하세요.
    • 먼저 출력 필드 구분 기호를 입력 필드 구분 기호( )와 동일하게 설정합니다 OFS=FS.
    • $0첫 번째 필드를 지우고 첫 번째 구분 기호( ) 이후부터 재구성된 행을 저장합니다.

관련 정보