Bash 명령의 반환 문자열에서 일부 16진수 값을 필터링해야 합니다. 예를 들면 다음과 같습니다.
hexVal=`mmc extcsd read /dev/mmcblk1 | grep 'Max Enhanced Area Size'`
hexVal 값을 반환합니다.
Max Enhanced Are Size [MAX_ENH_SIZE_MULT]: 0x000bd8
이제 hexVal의 값을 다음과 같이 반환해야 합니다.
0x000bd8
답변1
grep
awk
패턴 일치 및 일치 필드 인쇄 시 더 유용하므로 사용 대신 사용할 수 있습니다.
mmc extcsd read /dev/mmcblk1 | awk -F: '$1 ~ "^""Max Enhanced Area Size" { print $2 }'
위 결과에서 선행 공백을 제거할 수도 있습니다.
awk -F: '$1 ~ "^""Max Enhanced Area Size" { sub(/^[[:space:]]/,"",$2); print $2 }'
grep
GNU 버전을 사용 중이고 설치되어 있는 경우 PCRE 모드를 사용하세요.
grep -oP '^Max Enhanced Area Size.*:(\s+)\K(.+)'