2011-05-16 6 views
1

두 변수가 있습니다. 하나는 자리 표시자를 가진 텍스트입니다. &a 또는 &B 다른 하나는 텍스트에 삽입되어야하는 변수를 포함합니다. &a이 첫 번째 단어라고 말하면 &b은 두 번째 단어라고 말합니다. 텍스트에서 그들은 무작위 순서 일 수 있었다. 구분 기호는 공백입니다. 어떻게하면 bash에서이 작업을 수행 할 수 있습니까?텍스트를 자리 표시 자로 대체하는 방법은 bash에서 변수의 값으로 바꾸시겠습니까?

예 :

당신은 적어도이이 명령을 사용할 필요가
TEXT="Once &B a &a" 
VAR="time upon" 

# Result should be "Once upon a time" 

답변

5

순수한 bash - 외부 명령 없음 :

VAR="time upon" 
TEXT="Once &b a &a" 
set -- $VAR 
temp=${TEXT//&a/$1} 
TEXT=${temp//&b/$2} 
echo ==$TEXT== 
+0

감사합니다 이것은 매력처럼 작동합니다. 죄송합니다. 최대 26 개의 자리 표시 자 (a-z)가있을 수 있으며 때로는 자리 표시 자만큼 많은 변수가 없을 수도 있습니다. 예 : TEXT = "한 번에 & b & amp; c & 평화 & d &e &f"; VAR ="시간에 맞춰서 " – Neo

-1

: (토큰을 대체 할)

  • 가 나오지도 (당신의 "VAR"변수를 분할)

    • 컷을
  • +0

    이렇게하면 도움이되지 않습니다 - 어떻게이 명령을 사용해야합니까? 예제와 설명을 추가하십시오. 일시적으로 downvoted. –

    +0

    이제는 좋은 키워드 (sed 및 cut)를 가지고 있습니다. 복사하거나 붙여 넣을 수 있습니다. 그렇습니까? 네가 갖기 전에 너는 할 수 없었어. 그래서 나는 그것이 도움이된다고 생각한다. 그래서 다른 숙제를 할 수있는 곳이 아닙니다. – Tristan

    관련 문제