Shell 匹配字符串并在 aix 机器上打印下一个字符串的脚本

Shell script to match a string and print the next string on aix machine

我有以下一行作为输入。

Parsing events:hostname='tom';Ipaddress='10.10.10.1';situation_name='sgd_abc_app_a';type='General';

像这样,一行中有许多字段,由分隔符作为分号分隔。 (但从解析事件开始:)

我只想提取 sgd_abc_app_a 匹配 situation_name.

谢谢 库里

awk 解决办法:

s="Parsing events: hostname='tom';Ipaddress='10.10.10.1';situation_name='sgd_abc_app_a';type='General';"
awk -F'[=;]' '{ gsub("7","",); print  }' <<< $s

或者用sed:

sed -n "s/^Parsing events:.*situation_name='\([^']*\).*//p" <<< $s

输出:

sgd_abc_app_a

根据您的要求,无论 situation_name

的位置如何,它都会起作用
$ awk '/situation_name/{match([=10=],/situation_name=[^;]+/); print substr([=10=],RSTART+16,RLENGTH-17)}' file
sgd_abc_app_a

尝试

sed -n 's/^.*situation_name=//p' input_file| awk -F "'" '{print }'