awk 我被困住了

awk 我被困住了

我有一个正在从事的工作项目。我正在构建的脚本最初采用两个参数:一个是唯一标识符,另一个是日志文件(都是字符串)。现在我已经完成了第一部分,即解析唯一标识符。但第二部分是解析特定的字符串,该字符串是随机生成的数字和字母字符串。

我正在使用一个awk语句来获取这个随机字符串,并且我已经验证了我的表达式在 Rubular 中是正确的。但是当我尝试用更多代码测试代码时,什么也没有打印出来。这是我在命令行中输入的内容:

awk '/\s=\s[a-zA-Z0-9-]+/ {print }' ~/jlog/server.log | more

这是我的脚本中的内容:

for j in $(cat ~/jlog/"$2"); do awk '/'"$1"'/\s=\s[a-zA-Z0-9-]+/ {print}'

这是我正在解析的一段日志:

2014-06-17 15:34:52,406 INFO  [random.random.xxx.message.Random] Processed instance (1.2.840.113619.2.284.3.2013961368.890.1402186239.15
5/1.2.840.113619.2.80.1944071037.22604.1402323463.136) from [email protected] to Random_AE.  AssociationID = 9eddb1b0-368e-4fb9-a684-44cc14be389c

我正在专门寻找协会 ID 后面的随机代码。关于如何显示结果有什么建议吗?我没有什么想法。

答案1

请尝试

awk '$3=="INFO" && $(NF-2)=="AssociationID" && $(NF-1)=="=" { print $NF }' ~/jlog/server.log

通过直接传递日志文件的名称,awk您也可以避免使用forand cat

相关内容