문자열 일치 후 마지막 단어 필터링

문자열 일치 후 마지막 단어 필터링

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

grepawk패턴 일치 및 일치 필드 인쇄 시 더 유용하므로 사용 대신 사용할 수 있습니다.

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 }'

grepGNU 버전을 사용 중이고 설치되어 있는 경우 PCRE 모드를 사용하세요.

grep -oP '^Max Enhanced Area Size.*:(\s+)\K(.+)'

관련 정보