sed는 변수로 대체

sed는 변수로 대체

문자열에서 처음 n자를 제거하려고 하는데 다음 오류가 발생합니다.

line 5: ${ echo $data | sed -r 's/.{ $index0 }//' }: bad substitution

Bash 스크립트에서 이 코드를 사용하는 경우:

data=${ echo $data | sed -r 's/.{$index}//' }

수정 사항이 있나요?

답변1

훌륭한,

  1. 명령 대체는 이고 $( ... ), 그렇지 않습니다 ${ ... }. 중괄호가 아닌 일반 괄호입니다.
  2. $index작은 따옴표가 있으므로아니요쉘로 확장되었습니다. 이를 위해서는 큰따옴표를 넣어야 합니다.
  3. $data에코에 큰따옴표를 추가하면 data공백이나 전역 문자가 포함된 경우 차이가 발생합니다.
  4. Bash에서는 부분 문자열 확장을 사용하여 data=${data:$index}문자열 앞의 일부 문자를 제거할 수 있습니다.

추천 도서:http://mywiki.wooledge.org/BashGuide

관련 정보