如何在awk中将搜索模式打印为列
我有一个输入文件,其中包含来自不同虚拟机的如何在awk中将搜索模式打印为列,awk,Awk,我有一个输入文件,其中包含来自不同虚拟机的/proc/meminfo结果的集合。现在我需要在汇总表中编译结果 Exmaple:预期输出 MemAvailable MemFree 1234 223 2345 231 2312 229 9822 3466 5689 2376 我试着使用下面的逻辑,发现它不正确,有人能帮我纠正它吗 awk '/MemAvailable/{memA=$2
/proc/meminfo
结果的集合。现在我需要在汇总表中编译结果
Exmaple:预期输出
MemAvailable MemFree
1234 223
2345 231
2312 229
9822 3466
5689 2376
我试着使用下面的逻辑,发现它不正确,有人能帮我纠正它吗
awk '/MemAvailable/{memA=$2;next} /MemFree/{memF=$2;next} {print memA,memF}' input_file
注:可通过运行两次或三次
cat/proc/meminfo
生成输入数据 如果我正确理解了您的问题,您希望打印名为/proc/meminfo
下面的内容可能会对您有所帮助
awk 'BEGIN{print "MemAvailable\tMemFree"}/MemTotal/{val=$2;next} /MemFree/{print val,$2}' OFS="\t\t" /proc/meminfo
我建议使用
printf
而不是制表符进行格式化。制表符是邪恶的,但我不想开始一场战争。@kvantour,当然,先生,通过看到OP的输出,我想把制表符放到输出中。我们还可以通过删除上述代码中的OFS=“\t”来输出分隔符。