linux命令删除前导空格

linux命令删除前导空格

我只是想提取 VmRSS 值,但打印不应显示前导空格

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

尝试trcut命令并得到以下结果。

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,您还内置了各种trimtrim-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)

相关内容