매개변수 파일이 있는데 단어 하나를 가져온 다음 해당 단어만 삭제하고 나머지는 모두 남겨두려고 합니다. 예를 들어:
예는 다음과 같습니다:
#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
첫 번째 필드를 지우고 첫 번째 구분 기호( ) 이후부터 재구성된 행을 저장합니다.
- 먼저 출력 필드 구분 기호를 입력 필드 구분 기호( )와 동일하게 설정합니다