我有一个以下行作为输入。
Parsing events:hostname='tom';Ipaddress='10.10.10.1';situation_name='sgd_abc_app_a';type='General';
像这样,一行中有许多字段用分隔符分隔为分号。 (但从解析事件开始:)
我想在匹配situation_name时仅提取sgd_abc_app_a
。
由于 Kulli的
答案 0 :(得分:0)
awk 解决方案:
SELECT *
FROM .dbo.Lookup_Category C
LEFT JOIN dbo.Client CL ON C.ID = CL.Category
AND (CL.ID = 423 OR CL.Category IS NULL)
或 sed :
s="Parsing events: hostname='tom';Ipaddress='10.10.10.1';situation_name='sgd_abc_app_a';type='General';"
awk -F'[=;]' '{ gsub("\047","",$6); print $6 }' <<< $s
输出:
sed -n "s/^Parsing events:.*situation_name='\([^']*\).*/\1/p" <<< $s
答案 1 :(得分:0)
对于您的请求,无论situation_name
$ awk '/situation_name/{match($0,/situation_name=[^;]+/); print substr($0,RSTART+16,RLENGTH-17)}' file
sgd_abc_app_a
答案 2 :(得分:0)
尝试
sed -n 's/^.*situation_name=//p' input_file| awk -F "'" '{print $2}'