我正在寻找一种解决方案,而不是允许我删除以s_
开头并以='
结尾的字符串:
我假设以下字符串:
"s_login_type='Anonymous', s_login_url='', s_login_method='GET'"
由此我想只保留重音之间的字段,即:
'Anonymous', '', 'GET'
我试过了:
sed "s/s_/\&/g;s/\(='\)[^\n]*\n/\1 /g"
但它不会删除s_
有没有办法用sed做到这一点?
答案 0 :(得分:4)
删除以s_开头并以=
结尾的字符串
$ sed 's/s_[^=]*=//g' <<< "s_login_type='Anonymous', s_login_url='', s_login_method='GET'"
'Anonymous', '', 'GET'
答案 1 :(得分:2)
使用逗号或等号作为字段分隔符,并使用每第2个字段。
awk -F '[,=]' '{for (i=2; i<=NF; i+=2) print $i}' <<<"$data"| paste -sd,