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 }'
我有以下一行作为输入。
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 }'