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