
free
コマンド出力から一部の特定の列を取得する必要があります。
私が従う方法はあまり良くないようです。より良い方法を提案できる人はいますか?
bash-3.2$ free -gotsi
total used free shared buffers cached
Mem: 56 29 27 0 0 29
Swap: 11 0 11
Total: 67 29 38
bash-3.2$
bash-3.2$ free -gotsi | cut -c-40,64-
total used free cached
Mem: 56 29 27 29
Swap: 11 0 11
Total: 67 29 38
答え1
もしそうなら、文字ではなく列に基づいてこれを行うより良い方法が欲しいとします。
free | #the option for free don't work for me
sed -re 's/[ ]+/\t/g' | #convert delimiter to single tab
cut -f1-4,7 # choose columns 1 2 3 4 7
答え2
この場合、cut
文字範囲の取得には使用しないでください。特定の列を取得するには、これを行うのに最適なツールになるperl
ことができますawk
perl
最初の列と行を除くすべての列を印刷する例:
$ free -got | perl -anle 'print "@F[1..$#F]" unless $. == 1'
5 4 1 0 0 1
0 0 0
6 4 2