단어에서 숫자를 추출하는 방법 [중복]

단어에서 숫자를 추출하는 방법 [중복]

명령의 출력이 있고 df이를 사용하여 cut성공적으로 추출했습니다 22%. 그러나 문제는 값을 다른 정수 변수와 비교할 것이기 때문에 원하지 22않는다는 것입니다. %Bash에서 이 작업을 수행하는 방법은 무엇입니까?

답변1

가장 쉽고 빠른 것은 아마도 bash를 사용하는 것입니다.매개변수 확장 기능, 이와 같이:

string="22%"
percentage="${string%\%}"

echo "$percentage"   # Output: 22

${string%\%}첫 번째 것은 %특별한 의미를 갖습니다:매개변수 끝에서 제거(이 매개변수는 string이 예에 있습니다.)

두 번째 %무엇매개변수에서 제거되었습니다. 하지만 %이 문맥에서는 특별한 의미를 갖기 때문에 로 이스케이프해야 합니다 \.

더 많은 예와 정보를 보려면 다음을 참조하세요.고급 bash 스크립팅 가이드 10장.

답변2

sedPOSIX 또는 awk도구 에 연결하는 등 명령줄에서 숫자를 추출하는 방법은 여러 가지가 있습니다 . 하지만 bash를 사용하여 이 작업을 수행하는 방법을 직접 묻고 있기 때문입니다. 22%로 설정된 쉘 변수 $VARIABLE이 있다고 가정하면 이 코드는 숫자만 얻는 데 도움이 됩니다.22

user@box:~$ VARIABLE='22%'
user@box:~$ echo "${VARIABLE%%\%}"

출력 22

%특히 사용된 문자가 "sheel 변수에 저장된 문자열의 끝에서 바꾸기"와 같은 특별한 의미를 갖는 예에서는 고려하기가 다소 혼란스럽습니다 . end 에서 제거해야 하는 %문자 그대로의 문자임을 표시하려면 다음과 같이 이스케이프해야 합니다.\%

관련 정보