Bash 문자열 범위 및 교체

Bash 문자열 범위 및 교체

문자열의 일부를 인쇄하려면 I use 명령을 대체 ,하십시오 ..

echo "${q:16:6}" | sed 's/,/./'

다음과 같은 것을 사용할 수 있습니까?

echo "${q:16:6/,/.}"

작동하지 않기 때문에?

답변1

Bash에서는 매개변수 확장을 스택/중첩할 수 없습니다.

echo "${${q:16:6}/,/.}"

작동합니다. (이와 같은 중첩 확장은하다그러나 Zsh에서는 작동합니다. )

Bash를 유지하려면 임시 변수를 사용해야 합니다.

foo="${q:16:6}"
echo "${foo/,/.}"

관련 정보