free/sar/such 명령의 출력 형식을 어떻게 지정합니까?

free/sar/such 명령의 출력 형식을 어떻게 지정합니까?

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

관련 정보