如何使用awk过滤透明大页(transparent huge pages)的当前设置
用Awk提取透明大页当前设置值的方法
嘿,刚好踩过这个需求的坑!要从透明大页的配置输出里揪出带[]标记的当前生效设置,这几个awk写法亲测好用:
方法一:正则捕获组精准提取
这个写法逻辑清晰,靠match函数直接锁定括号内的内容:cat /sys/kernel/mm/transparent_hugepage/enabled | awk '/\[.*\]/ {match($0, /\[([^\]]+)\]/, match_arr); print match_arr[1]}'原理:
match函数会匹配字符串里的[xxx]格式,把括号里的有效内容存到match_arr[1]数组元素里,直接打印它就能拿到当前设置。方法二:全局替换快速过滤
追求简洁的话,用gsub把冗余内容一键清空:awk '{gsub(/.*\[|\].*/, "", $0); print $0}' /sys/kernel/mm/transparent_hugepage/enabled原理:
gsub(/.*\[|\].*/, "", $0)会把字符串开头到[的部分、以及]到结尾的部分全部替换为空,剩下的就是我们要的当前设置值。
这两种方法都能适配不同的输出顺序,不管当前设置在哪个位置,只要它被[]包裹着就能正确提取~
内容的提问来源于stack exchange,提问作者Howard Lee
相关产品推荐
相关产品推荐

