从命令输出中捕获特定列

从命令输出中捕获特定列

我知道如何在执行命令时将输出的前 5 行重定向到文件。我想知道如何仅重定向输出中的特定信息。

例如,我想执行命令“free -m”并将“used”列从输出重定向到文本文件。

如何在不手动编辑整个输出的情况下执行此操作?

答案1

我确信有更优雅的答案,但这应该有效:

free -m | awk '{if (NR == 1) {print $2} else {print $3}}' > file.out

该命令获取标准输出free -m并将其发送到awk。对于第一行,它打印第二列(这里是感兴趣的列的标题),否则它打印第三列(后续行free -m有一个额外的列)。

相关内容