[英]Use Sed to get string between two strings and split
以下sed表达式有什么问题? 我试图获取topic =
和遇到的first semi-colon
之间的所有topic =
,然后使用逗号作为分隔符拆分为结果。
sed "s/oc.diffusion.topic = ""(.*)"""";/\1/g"| sed "s/$/,/"
这是测试字符串:
xchangeCommission = true;oc.diffusion.topic = "Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.*,Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/topic,Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.*/repub_OC//,Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/repub_OC/all,Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188//,Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188/all";var SKY_TRA
使用sed
sed 's/.*oc.diffusion.topic = "\([^"]*\)".*/\1/' file
Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.*,Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/topic,Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.*/repub_OC//,Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/repub_OC/all,Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188//,Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188/all
[^"]*
将轻松命令命令,以获得没有双引号的所有字符。 或使用grep
grep -Po "(?<=topic = \")[^\"]*" file
sed 's/,/\n/g;s/.*\"\(.*\)\".*/\1/' file
Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.*
Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/topic
Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.*/repub_OC//
Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/repub_OC/all
Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188//
Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188/all
由于您拥有的文本是引号之间的唯一文本,因此您可以使用此简单的awk
awk -F\" '{print $2}' file
Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.*,Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/topic,Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.*/repub_OC//,Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/repub_OC/all,Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188//,Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188/all
像这样?
sed 's/[^"]*"//;s/".*//;y/,/\n/'
要么
awk '!/;/' RS='[",]'
结果
Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.* Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/topic Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_.*/repub_OC// Oddschecker/category_27/event_9945/subevent_63289835/market_1758201893/bet_all/repub_OC/all Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188// Oddschecker/category_27/event_9945/subevent_63289835/fixture_401188/all
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.