先行スペースを削除する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

MacOSベンチュラ13.4

zsh 5.9(x86_64-apple-darwin22.0)

GNU bash、バージョン 5.1.8(1)-リリース(x86_64-apple-darwin15.6.0)

関連情報