bash의 문자열에서 공백 ( )을 점 (
.
)으로 바꾸는 것이 가능해야합니다 .
나는 이것이 매우 간단하다고 생각하지만, 새로운 용도 이므로이 사용을 위해 비슷한 예제를 수정하는 방법을 알 수 없습니다.
답변
인라인 쉘 문자열 교체를 사용하십시오. 예:
foo=" "
# replace first blank only
bar=${foo/ /.}
# replace all blanks
bar=${foo// /.}
자세한 내용은 http://tldp.org/LDP/abs/html/string-manipulation.html 을 참조하십시오.
답변
다음 tr
과 같이 사용할 수 있습니다 .
tr " " .
예:
# echo "hello world" | tr " " .
hello.world
보낸 사람 man tr
:
설명
표준 입력에서 표준 출력으로 문자를 번역, 압착 및 / 또는 삭제합니다.
답변
bash에서는 구문 으로 문자열에서 패턴 교체 를 수행 할 수 있습니다 ${VARIABLE//PATTERN/REPLACEMENT}
. 첫 번째 항목 만 바꾸지 /
말고 그대로 사용하십시오 //
. 패턴은 파일 글로브와 같은 와일드 카드 패턴입니다.
string='foo bar qux'
one="${string/ /.}" # sets one to 'foo.bar qux'
all="${string// /.}" # sets all to 'foo.bar.qux'
답변
이 시도
echo "hello world" | sed 's/ /./g'
답변
매개 변수 대체 사용 :
string=${string// /.}
답변
경로를 위해 이것을 시도하십시오 :
echo \"hello world\"|sed 's/ /+/g'|sed 's/+/\/g'|sed 's/\"//g'
큰 따옴표로 묶인 문자열 내부의 공백을 +
노래로 바꾼 다음+
부호를 백 슬래시로 바꾼 다음 큰 따옴표를 제거 / 바꾸십시오.
Cygwin의 경로 중 하나의 공백을 대체하기 위해 이것을 사용해야했습니다.
echo \"$(cygpath -u $JAVA_HOME)\"|sed 's/ /+/g'|sed 's/+/\\/g'|sed 's/\"//g'