![free/sar/such 명령의 출력 형식을 어떻게 지정합니까?](https://linux55.com/image/39521/free%2Fsar%2Fsuch%20%EB%AA%85%EB%A0%B9%EC%9D%98%20%EC%B6%9C%EB%A0%A5%20%ED%98%95%EC%8B%9D%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%A7%80%EC%A0%95%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
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