BIOS informationManufacturer : Dell Inc.Version : 2.5.2Release Date : 01/28/2015Firmware informationname : IDRAC7Version : 2.21.21 (Build 12)Firmware informationname : lifecycle Controller 2Version : 2.21.21.21
…通过管道输入以下awk声明……
awk '{ if (" " == "BIOS information") var=} END { print var }'
在这种情况下,这将输出’BIOS’.
我想查找’BIOS information’,然后设置第三个字段,两行,所以在这种情况下’var’将等于’2.5.2′.有没有办法用awk做到这一点?
编辑:
我尝试了以下方法:
awk ' BEGIN {FS="[ \t]*:[ \t]*";}NF==1 { sectname=BEGIN { FS="[ \t]*:[ \t]*";}NF==1 { sectname=;} NF==2 && == "Version" && sectname=="BIOS information" { bios_version=;} END { print bios_version;};}NF==2 && == "Version" && sectname="BIOS information" { bios_version=;}END { print bios_version;}'
这给了我’2.21.21.21’上面的文字.这可以修改为给我“BIOS信息”之后的第一个“版本”吗?
解决方法 下面的脚本可能是一种矫枉过正,但如果你有多个部分名称和/或字段顺序被更改,它会很强大.首先,我们设置输入字段分隔符,以便单词不会分成不同的字段.接下来,我们检查当前行是段名还是键值对.如果是节名称,请将sectname设置为节名称.如果它是一个键值对,当前节名称是“BIOS information”,键是“Version”,那么我们设置bios_version.
总结以上是内存溢出为你收集整理的如果语句匹配,awk将变量设置为行全部内容,希望文章能够帮你解决如果语句匹配,awk将变量设置为行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)