/proc/pid/maps의 마지막 필드를 얻기 위해 cut을 사용하는 방법은 무엇입니까?

/proc/pid/maps의 마지막 필드를 얻기 위해 cut을 사용하는 방법은 무엇입니까?

프로세스에서 로드한 .so 목록에 대해 일부 처리를 수행해야 합니다. 공백을 구분 기호로 사용하여 절단을 시도했지만 성공하지 못했습니다. 마지막 필드를 얻기 위해 cat /proc/PID/maps의 출력을 컷으로 올바르게 파이프하는 방법은 무엇입니까?

답변1

마지막 필드를 얻는 것은 일반적으로 약간 까다롭습니다. 옵션은 다음과 같습니다

awk '{print $NF}' /proc/PID/maps

( awk항목이 있는 마지막 필드가 반환됩니다. 0inode=0 항목의 경우 빈 필드 대신 반환됩니다.)

또는 중간에 있는 첫 번째 필드를 선택하여 행을 두 번 뒤집습니다.

rev /proc/PID/maps | cut -d' ' -f1 | rev

grep공백을 제외한 문자를 일치시킨 다음 줄 끝 부분과 일치시키는 데 사용됩니다 .

grep -o '[^ ]*$' /proc/PID/maps

답변2

maps'고정 패딩'을 사용할 수 있습니다 .

cut -c74- /proc/.../maps

(64비트 플랫폼에서).

모든 경우에 마지막 필드를 추출합니다.예를 들어를 사용하면 해당 줄에서 백업 파일을 생략하거나 완전히("[힙]" 등) 사용할 수 있으므로 awk '{ print $NF }'오해의 소지가 있습니다 .maps

답변3

재봉이 약간 제한되어 있습니다. file: 에 있는 경우 12345 abcde 12438이를 구문 분석하여 파이프하거나 리디렉션할 수 있는 콘텐츠를 cat file | awk '{print $2}'얻을 수 있습니다.abcde

관련 정보