선행 공백을 제거하는 Linux 명령

선행 공백을 제거하는 Linux 명령

VmRSS 값을 추출하고 싶지만 인쇄 시 선행 공백이 표시되어서는 안 됩니다.

renv@svr-ubt20-004:~$ cat /proc/607440/status | grep VmRSS
VmRSS:     20452 kB

tr명령 을 시도 cut하고 다음과 같은 결과를 얻었습니다.

renv@svr-ubt20-004:~$ cat /proc/607440/status | grep VmRSS | cut -d ':' -f 2 | tr -s " "
         20452 kB

예상하다:
20452KB

이 목표를 달성하려면 도움이 필요합니다.

답변1

AWK는 이 모든 것을 처리할 수 있습니다.

awk '/VmRSS/ { print $2" "$3 }' /proc/607440/status

답변2

다음 중 하나를 시도해 보십시오.

sed -n 's/^VmRSS:\t//p' /proc/607440/status

awk 'sub(/^VmRSS:\t/,"")' /proc/607440/status

awk -F':\t' '$1=="VmRSS"{print $2}' /proc/607440/status

위 탭 은 압축하지 않았기 :때문에 예제 입력의 나중 탭 이라고 가정합니다 . tr -s " "이 가정이 잘못된 경우 POSIX 도구를 사용하십시오.

sed -n 's/^VmRSS:[[:space:]]*//p' /proc/607440/status

awk 'sub(/^VmRSS:[[:space:]]*/,"")' /proc/607440/status

awk -F':[[:space:]]+' '$1=="VmRSS"{print $2}' /proc/607440/status

답변3

진주:

~$ zsh
~% printf 'VmRSS:\t20452 kB' | perl -lpe 's/^VmRSS\:\t//;'
20452 kB

~% bash
~$ printf 'VmRSS:\t20452 kB' | perl -lpe 's/^VmRSS\:\t//;'
20452 kB

행복하다:

~$ zsh
~% printf 'VmRSS:\t20452 kB' | raku -pe 's/^VmRSS\:\t//;'
20452 kB

~% bash
~$ printf 'VmRSS:\t20452 kB' | raku -pe 's/^VmRSS\:\t//;'
20452 kB

또한 Raku에는 다양한 trim, trim-leading및/또는 기능이 내장되어 있습니다. trim-trailing공백만 제거해야 하고 공백인지 탭인지 상관하지 않는 경우:

~$ zsh
~% printf 'VmRSS:\t20452 kB' | raku -pe 's/^VmRSS\://;' | raku -ne '.trim-leading.put;'
20452 kB

~% bash
~$ printf 'VmRSS:\t20452 kB' | raku -pe 's/^VmRSS\://;' | raku -ne '.trim-leading.put;'
20452 kB

맥OS 벤츄라 13.4

zsh 5.9 (x86_64-apple-darwin22.0)

GNU bash, 버전 5.1.8(1)-릴리스(x86_64-apple-darwin15.6.0)

관련 정보