Извлечь поле из файла / proc / meminfo - PullRequest
0 голосов
/ 07 февраля 2020
Файл

/ proc / meminfo содержит требования к процессору компьютера. Команда out out выглядит следующим образом:

Total Memory of MemTotal:        2002424 kB

MemFree:         1061248 kB

MemAvailable:    1562492 kB

Buffers:           79584 kB

Cached:           522376 kB

SwapCached:            0 kB

Active:           450252 kB

Inactive:         332780 kB

Active(anon):     181772 kB

Inactive(anon):       92 kB

Active(file):     268480 kB

Inactive(file):   332688 kB

Unevictable:           0 kB

Mlocked:               0 kB

SwapTotal:             0 kB

SwapFree:              0 kB

Dirty:                64 kB

Writeback:             0 kB

AnonPages:        181028 kB

Mapped:           147104 kB

Shmem:               796 kB

Slab:             111516 kB

SReclaimable:      62984 kB

SUnreclaim:        48532 kB

KernelStack:        3680 kB

PageTables:         8908 kB

NFS_Unstable:          0 kB

Bounce:                0 kB

WritebackTmp:          0 kB

CommitLimit:     1001212 kB

Committed_AS:    1177904 kB

VmallocTotal:   34359738367 kB

VmallocUsed:           0 kB

VmallocChunk:          0 kB

HardwareCorrupted:     0 kB

AnonHugePages:         0 kB

ShmemHugePages:        0 kB

ShmemPmdMapped:        0 kB

CmaTotal:              0 kB

CmaFree:               0 kB

HugePages_Total:       0

HugePages_Free:        0

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:       2048 kB

DirectMap4k:      133096 kB

DirectMap2M:     1925120 kB

DirectMap1G:           0 kB

MemTotal:        2002424 kB

MemFree:         1061248 kB

MemAvailable:    1562492 kB

Buffers:           79584 kB

Cached:           522376 kB

SwapCached:            0 kB

Active:           450252 kB

Inactive:         332780 kB

Active(anon):     181772 kB

Inactive(anon):       92 kB

Active(file):     268480 kB

Inactive(file):   332688 kB

Unevictable:           0 kB

Mlocked:               0 kB

SwapTotal:             0 kB

SwapFree:              0 kB

Dirty:                64 kB

Writeback:             0 kB

AnonPages:        181028 kB

Mapped:           147104 kB

Shmem:               796 kB

Slab:             111516 kB

SReclaimable:      62984 kB

SUnreclaim:        48532 kB

KernelStack:        3680 kB

PageTables:         8908 kB

NFS_Unstable:          0 kB

Bounce:                0 kB

WritebackTmp:          0 kB

CommitLimit:     1001212 kB

Committed_AS:    1177904 kB

VmallocTotal:   34359738367 kB

VmallocUsed:           0 kB

VmallocChunk:          0 kB

HardwareCorrupted:     0 kB

AnonHugePages:         0 kB

ShmemHugePages:        0 kB

ShmemPmdMapped:        0 kB

CmaTotal:              0 kB

CmaFree:               0 kB

HugePages_Total:       0

HugePages_Free:        0

HugePages_Rsvd:        0

HugePages_Surp:        0

Hugepagesize:       2048 kB

DirectMap4k:      133096 kB

DirectMap2M:     1925120 kB

DirectMap1G:           0 kB 

(без пробелов между строками), но в виде двух столбцов. Как извлечь 2002424 из общей памяти с помощью команды $ cat в LINUX, или используя awk, grep

1 Ответ

2 голосов
/ 07 февраля 2020

Вы можете использовать , чтобы поймать нужную строку, и , чтобы получить желаемый столбец (5);

cat /proc/meminfo | grep 'Total Memory' | awk '{print $5}'

Еще лучше; просто используйте ! Начните сзади и удалите первый столбец ('КБ') с помощью: $(NF-1)! Thx @ karakfa !

awk '/Total Memory/{print $(NF-1)}' /proc/meminfo

Результат;

2002424

...