다음 명령에서 처음 두 자리만 얻는 방법
내 목표는 hadoop 기본 버전을 얻는 것입니다
hdp-select | grep hadoop-client | awk '{print $NF}'
2.6.0.3-8
예상 결과:
2.6
답변1
소수점 자르기 사용인쇄 기능존재하다awk
awk '{printf "%.1f\n", $NF}'
답변2
싱글로앗:
hdp-select | awk '/hadoop-client/{ printf("%.1f\n",$NF); exit }'
2.6
/hadoop-client/
hadoop-client
- 키워드가 있는 줄만 고려printf("%.1f\n",$NF)
- 버전 번호를 간단한 부동 소수점 숫자로 형식 지정exit
- 즉시 처리 중지(자원 절약)
답변3
coreutils cut을 사용할 수 있습니다.
echo 2.6.0.3-8 | cut -d . -f 1,2
산출:
2.6
답변4
XX.YY
기본 버전 번호를 얻으려면 다음과 같은 상황에서 명령이 최소 버전 번호를 얻을 수 있어야 합니까 2.10.0.3.3-8
?
아래 명령은 버전 형식 grep
만 반환합니다 .*.*
grep -Po 'hadoop-client - \K[1-9]+\.[0-9]+(?=.*)' <(hdp-select)
2.6
시험:
grep -Po 'hadoop-client - \K[1-9]+\.[0-9]+(?=.*)' <<<"hadoop-client - 21.61.0.3-8"
21.61