繁体   English   中英

*的AWK命令

[英]AWK command for *

我正在尝试使用awk并在文件第二行上使用条件来检索文本的第四列,但是我得到了一个空白值作为输出。

这是我的输入文件内容第一行: xxxx第二行: GS*HP*IRX*029053964*20180611*114500

我需要在输入文件中查找条件HP*IRX*并打印值20180611 (第4列)

这是我的剧本

filedate=$(awk -F "*" '/HP*IRX/{print $4}' $file)
  echo $filedate

请告知我所缺少的..tnx!

问题是*是正则表达式中的特殊字符。 /HP*IRX/将匹配“ H”,然后匹配零个或多个“ P”,再匹配“ IRX”

你要

awk -F'*' '$2 == "HP" && $3 == "IRX" {print $5}'

或者,如果您真的想要正则表达式

awk -F'*' '/\*HP\*IRX\*/ {print $5}'

我在前面加了一个\\* ,这样您就不fooHP*IRX的行与之匹配

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM