Bash 문자열 조작 및 할당

Bash 문자열 조작 및 할당

문자열을 조작한 다음 변수에 할당하는 방법은 무엇입니까?

이 문자열 조작은 내가 원하는 방식으로 작동합니다.

echo ${dir:2:5} | sed 's/[.]$//';

하지만:

var x = ${dir:2:5} | sed 's/[.]$//';

그리고

x = ${dir:2:5} | sed 's/[.]$//';

그리고

x = $(${dir:2:5} | sed 's/[.]$//');

다음과 유사한 오류가 발생합니다.

script.sh: line 2: mystring: command not found
script.sh: line 2: x: command not found
script.sh: line 2: var: command not found

내 의도는 명령에서 이 변수를 사용하는 것입니다 mv.

mv /var/$x/test/$x.mp4 /home/me/

답변1

다시 채우다프레디답변; sed파이프는 다음으로 교체할 수도 있습니다.bash문자열 교체. 예:

x=abcd.efghijk ; y="${x:2:5}" ; echo "$y"  "${y/.}"

산출:

cd.ef cdef

답변2

노력하다:

x=$(echo "${dir:2:5}" | sed 's/\.$//')
  1. x=value변수 선언시 공백( )은 생략해야 합니다.
  2. $dir변수입니다. 명령의 출력을 인쇄하려면 echo "${dir:2:5}" | sed 's/\.$//'터미널에서 사용할 수 있습니다. 변수에 값을 저장하려면 x명령 대체를 사용하여 값을 명령으로 바꾸십시오.$( )

관련 정보