문자열을 조작한 다음 변수에 할당하는 방법은 무엇입니까?
이 문자열 조작은 내가 원하는 방식으로 작동합니다.
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/\.$//')
x=value
변수 선언시 공백( )은 생략해야 합니다.$dir
변수입니다. 명령의 출력을 인쇄하려면echo "${dir:2:5}" | sed 's/\.$//'
터미널에서 사용할 수 있습니다. 변수에 값을 저장하려면x
명령 대체를 사용하여 값을 명령으로 바꾸십시오.$( )