명령 출력을 sed에 전달하는 방법

명령 출력을 sed에 전달하는 방법

나의sed명령을 내리다#구성 파일의 업데이트 키. 변수의 내용을 가져오지 않습니다.$GETKEY 누군가 나를 도와줄까요?

  # Get key from output of the website.
  GETKEY=`wget https://www.badips.com/get/key -qO - | awk {'print $9'} | cut -d ":" -f3 | cut -d "}" -f1 | sed 's/\"//g'`
  if [ $? -eq 0 ]
  then

      # Update key in config file.    
      sed -i 's/^\(KEY\s*=\s*\).*$/\1$GETKEY/' Config

  fi

답변1

변수는 작은따옴표로 대체되지 않습니다. 사용:

  sed -ri "s/^(KEY\\s*=\\s*).*$/\\1$GETKEY/" Config

이전에는 괄호를 이스케이프해야 하는 필요성을 제거 했지만 -r다른 백슬래시는 작은따옴표로 이스케이프해야 합니다. 그렇지 않으면 따옴표를 혼합할 수 있습니다.

  sed -ri 's/^(KEY\s*=\s*).*$/\1'"$GETKEY/" Config

관련 정보