![从命令输出中捕获特定列](https://linux22.com/image/66473/%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%BE%93%E5%87%BA%E4%B8%AD%E6%8D%95%E8%8E%B7%E7%89%B9%E5%AE%9A%E5%88%97.png)
我知道如何在执行命令时将输出的前 5 行重定向到文件。我想知道如何仅重定向输出中的特定信息。
例如,我想执行命令“free -m”并将“used”列从输出重定向到文本文件。
如何在不手动编辑整个输出的情况下执行此操作?
答案1
我确信有更优雅的答案,但这应该有效:
free -m | awk '{if (NR == 1) {print $2} else {print $3}}' > file.out
该命令获取标准输出free -m
并将其发送到awk
。对于第一行,它打印第二列(这里是感兴趣的列的标题),否则它打印第三列(后续行free -m
有一个额外的列)。