2013-02-24 3 views
0

아무도 왜 이것이 작동하지 않는지 말할 수 없습니까?sed를 배열과 함께 사용하기

Temp=$(sed -n '/"${Arr[$index]}"/,/"${Arr[$((index+1))]}"/p' $Text); 

여전히 작동하지 않습니다. 나는이 일을 시도하십시오 sed 스크립트가 모든 확장을 방지 작은 따옴표에

index=0 
while [ "$index" -lt "$((Arr_LEN-1))" ]; do 
    Temp=$(sed -n "/${Arr[$index]}/,/${Arr[$((index+1))]}/p" $Text);  
    let "index++" 
done 
+0

예상되는 출력은 무엇이며 대신 무엇을합니까? – user000001

+0

더 구체적으로 말씀해 주시겠습니까? 정확히 "어떻게 작동하지 않는가"? 오류 메시지? 어떻게 재현 할 수 있습니까? –

+0

나는 2 개의 문제가 있었다 : 처음에는 작은 따옴표를 사용했고 두 번째 $ 텍스트는 문자열이 아니라 파일을 가리켰다. 감사합니다 모두 – Max

답변

5

때문에 : 작은 따옴표로

묶는 문자를 따옴표 내의 각 문자의 리터럴 값을 유지합니다. 큰 따옴표

묶는 문자가 $,`, \를 제외하고, 따옴표 내의 모든 문자의 리터럴 값을 보존하고 : 따옴표로

작은 따옴표를 변경 는

하지만 도움이 될 것입니다 내역 확장을 으로 설정하면! 문자 $와`는 특별한 의미를 큰 따옴표 안에 넣습니다.

+0

나는 질문을 편집한다 – Max

3

작은 따옴표를 사용하고 있기 때문에. 시도해보십시오 :

Temp=$(sed -n "/${Arr[$index]}/,/${Arr[$((index+1))]}/p" $Text); 
+0

나는 질문을 편집한다. – Max

관련 문제