Error[8]: Undefined offset: 4, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有以下文字…… BIOS InformationManufacturer : Dell Inc.Version : 2.5.2Release Date : 01/28/2015Firmware InformationName : iDRAC7Ve 我有以下文字……

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将变量设置为行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 5, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有以下文字…… BIOS InformationManufacturer : Dell Inc.Version : 2.5.2Release Date : 01/28/2015Firmware InformationName : iDRAC7Ve 我有以下文字……

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将变量设置为行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
如果语句匹配,awk将变量设置为行_系统运维_内存溢出

如果语句匹配,awk将变量设置为行

如果语句匹配,awk将变量设置为行,第1张

概述我有以下文字…… BIOS InformationManufacturer : Dell Inc.Version : 2.5.2Release Date : 01/28/2015Firmware InformationName : iDRAC7Ve 我有以下文字……

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将变量设置为行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1026674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存