쉘에서 줄을 감싸고 특정 문자열을 변수에 할당하는 방법

쉘에서 줄을 감싸고 특정 문자열을 변수에 할당하는 방법

파일을 분류하고 특정 줄을 출력으로 갖고 싶습니다.

이름="XXX"

$name 변수에 XXX만 할당하는 방법

답변1

파일이 쉘 또는 bash 코드인 경우최선의 선택source모든 변수를 얻으려면 파일을 제출 해야 합니다 .

. ./file

또는 모든 것이 셸 코드가 아니거나 그 안에 있는 모든 것을 실행하고 싶지 않은 경우 source이전에 파일을 필터링했다면 여전히 그렇게 할 수 있습니다.

. <(grep '^NAME=' file)

그런 다음 변수를 사용할 수 있습니다 $NAME.


대안:

사용 가능한 경우 다음을 사용하십시오 grep -P.

name=$(grep -Po '^NAME="\K[^"]*' file)

grep없이 사용 -P:

name=$(grep -o '^NAME="[^"]*' file | sed 's/NAME="//')

사용 awk:

name=$(awk -F\= '$0~/^NAME/{gsub(/"/,"",$2);print $2}' file)

관련 정보