大佬教程收集整理的这篇文章主要介绍了使用 AWK 仅提取 Linux Kernel Versions 列,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
从 Debian/Ubuntu grub 配置文件 /boot/grub/grub.cfg,我想只提取 linux Kernel Version 列,使用 AWK。
我用管道写了一个很长的命令。我们可以简短一点吗?。
我的命令:
# awk -F"--class" '/menuentry/ && /with linux/ {print $1}' /boot/grub/grub.cfg | awk '{print i++ " : " $5,$6,$7,$8}' | sed -e "s/'/ /g"
0 : linux 5.12.1
1 : linux 5.12.1 (recovery modE)
2 : linux 4.19.0-14-amd64
3 : linux 4.19.0-14-amd64 (recovery modE)
上面的输出是我想要的输出,但我想知道命令是否可以更短以产生相同的输出?。
根据您显示的尝试,请尝试以下操作。由于未在帖子中提供实际样品,因此未进行测试。
awk -F"--class" '
/menuentry/ && /with Linux/{
gsub(/\047/,"",$1)
split($1,arr," ")
print i++" : "arr[5],arr[6],arr[7],arr[8]
}
' Input_file
说明:为以上添加详细说明。
awk -F"--class" ' ##StarTing awk program from here,setTing field separator as --class for all lines.
/menuentry/ && /with Linux/{ ##Searching menuentry AND with Linux keywords in line.
gsub(/\047/,$1) ##Globally substituTing ' with NULL in 1st field.
split($1," ") ##SplitTing 1st field into array arr here.
print i++" : "arr[5],arr[8] ##PrinTing i value(increment with 1 herE) then prinTing values of array 5th,6th,7th and 8th elements here.
}
' Input_file ##Mentioning Input_file name here.
以上是大佬教程为你收集整理的使用 AWK 仅提取 Linux Kernel Versions 列全部内容,希望文章能够帮你解决使用 AWK 仅提取 Linux Kernel Versions 列所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。