我只是想提取 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
期待:
20452 KB
需要帮助才能实现这一目标。
答案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
MacOS 文图拉 13.4
zsh 5.9 (x86_64-apple-darwin22.0)
GNU bash,版本 5.1.8(1)-发布 (x86_64-apple-darwin15.6.0)