Bash 逐项列出自由命令的行和列

Bash 逐项列出自由命令的行和列,bash,shell,Bash,Shell,我想知道我的系统中有多少内存被使用和释放。我运行了free命令,下面是我的输出 缓存的可用共享缓冲区总数 成员:1633624 16199712 134912 372780 333456 4673092 -/+缓冲区/缓存:11193164 5141460 掉期:4194300 806484 3387816 现在我想去掉第一列和最后一行。因此,我使用了这个free | sed-n1,3p | cut-d”“-f2-,下面是输出 total used free

我想知道我的系统中有多少内存被使用和释放。我运行了free命令,下面是我的输出
缓存的可用共享缓冲区总数
成员:1633624 16199712 134912 372780 333456 4673092
-/+缓冲区/缓存:11193164 5141460
掉期:4194300 806484 3387816

现在我想去掉第一列和最后一行。因此,我使用了这个free | sed-n1,3p | cut-d”“-f2-,下面是输出

       total       used       free     shared    buffers     cached
 16334624   16200348     134276     372732     333520    4658336
缓冲区/高速缓存:112084925126132

现在我想把这些值排列成一行。e、 g.
总计=1633624,使用=16200348,依此类推。。。。最后,缓冲区/缓存已用/空闲=11208492/5126132

知道我该怎么做吗?

使用awk可以这样做:

free | awk 'NR==2 { printf("total = %s\nused = %s\nfree = %s\nshared = %s\nbuff/cache = %s\navailable = %s\n", $2,$3,$4,$5,$6,$7)}'
  • 条件
    NR==2
    仅选择要对其应用操作的第二行
  • 不同的字段
    $2
    $7
    免费
    输出中的数字列
  • printf
    中的
    \n
    创建新行
关闭第一行。在第二行,你有顺序的数字。只需用适当的标签打印即可。