2011-04-29 3 views
4

var = "abcde $$$$$$$$ fff $$ gg"변수가 있습니다. 나는 '공간의 모든 $를 교체하고 싶지만 다음 박았 한 공간쉘 스크립트 변수 대체 문자

var=$(echo "$var" | tr '$' ' ') 

내가 그들 모두를 대체 할 수 있습니까?

답변

8

저에게 맞습니다. 당신은 그렇지 않으면 이중 인용 된 문자열에서 제거되고, 작은 따옴표를 사용하거나 달러 기호를 탈출해야합니다 :

echo 'abcde$$$$$$$$fff$$gg' | tr '$' ' ' 
abcde  fff gg 

echo "abcde\$\$\$\$\$\$\$\$fff\$\$gg" | tr '$' ' ' 
abcde  fff gg 

echo abcde\$\$\$\$\$\$\$\$fff\$\$gg | tr '$' ' ' 
abcde  fff gg 

echo $'abcde$$$$$$$$fff$$gg' | tr '$' ' ' 
abcde  fff gg 
12
외부 명령을 (사용 bash는)

$ var='abcde$$$$$$$$fff$$gg' 
$ echo "${var//$/ }" 
abcde  fff gg 

를 호출하지 않고 교체 할 수

"$"기호가 삽입되지 않도록 작은 따옴표를 사용해야합니다.

+0

파일에서 값을 var로 읽습니다. 그래서 그것은 var = ''또는 var = ""입니까? – thetux4

+0

파일에서 값을 읽은 경우'var = '''또는'var = ""'는 부적합합니다. 파일에서 행을 읽을 때 사용한 변수는'var'과 같습니다. 그래서 그냥'echo "$ {whatever_variable_you_used // $ /}"' – ghostdog74

3

이전 질문이지만, 나는 이것들을 쓸어 버렸습니다. 문제가있는 검색 엔진으로 검색 한 후 여기에 올 것입니다. echo -e을 다음과 같이 사용해야합니다.

var="$(echo -e "$var" | tr '$' ' ' )"