명령의 출력이 있고 df
이를 사용하여 cut
성공적으로 추출했습니다 22%
. 그러나 문제는 값을 다른 정수 변수와 비교할 것이기 때문에 원하지 22
않는다는 것입니다. %
Bash에서 이 작업을 수행하는 방법은 무엇입니까?
답변1
가장 쉽고 빠른 것은 아마도 bash를 사용하는 것입니다.매개변수 확장 기능, 이와 같이:
string="22%"
percentage="${string%\%}"
echo "$percentage" # Output: 22
의 ${string%\%}
첫 번째 것은 %
특별한 의미를 갖습니다:매개변수 끝에서 제거(이 매개변수는 string
이 예에 있습니다.)
두 번째 %
는무엇매개변수에서 제거되었습니다. 하지만 %
이 문맥에서는 특별한 의미를 갖기 때문에 로 이스케이프해야 합니다 \
.
더 많은 예와 정보를 보려면 다음을 참조하세요.고급 bash 스크립팅 가이드 10장.
답변2
sed
POSIX 또는 awk
도구 에 연결하는 등 명령줄에서 숫자를 추출하는 방법은 여러 가지가 있습니다 . 하지만 bash를 사용하여 이 작업을 수행하는 방법을 직접 묻고 있기 때문입니다. 22%로 설정된 쉘 변수 $VARIABLE이 있다고 가정하면 이 코드는 숫자만 얻는 데 도움이 됩니다.22
user@box:~$ VARIABLE='22%'
user@box:~$ echo "${VARIABLE%%\%}"
출력 22
%
특히 사용된 문자가 "sheel 변수에 저장된 문자열의 끝에서 바꾸기"와 같은 특별한 의미를 갖는 예에서는 고려하기가 다소 혼란스럽습니다 . end 에서 제거해야 하는 %
문자 그대로의 문자임을 표시하려면 다음과 같이 이스케이프해야 합니다.\%