sed或grep中的两个匹配项

sed或grep中的两个匹配项,sed,grep,Sed,Grep,我使用grep在以下两个命令中分别捕获id和name: echo "id=\"12345678_name\">myname</td>" | grep -oP "(?<=id=\\).*?(?=_name)" echo "id=\"12345678_name\">myname</td>" | grep -oP "(?<=name).*?(?=<\/td)" 我在Windows(6.2.9200)中使用GNU-Sed版本4.2.1在命令行和批处

我使用grep在以下两个命令中分别捕获id和name:

echo "id=\"12345678_name\">myname</td>" | grep -oP "(?<=id=\\).*?(?=_name)"
echo "id=\"12345678_name\">myname</td>" | grep -oP "(?<=name).*?(?=<\/td)"
我在Windows(6.2.9200)中使用GNU-Sed版本4.2.1在命令行和批处理文件中执行此操作

echo“id=\“12345678\u name\”>myname“| sed-re的~id=\”([0-9]+)\u name\”>([^
echo'id=\“12345678\u name\”>myname';sed-r的#id=\\”([[:digit:]+)[^>+>([[:alpha:]+])+)\
echo "id=\"12345678_name\">myname</td>" | sed -re 's~id=\"([0-9]+)_name\">([^<]+)</td>~\1, \2~g'

第一个不起作用。在Windows的命令提示符下,我似乎无法让它起作用。语法与Unix有很大的不同吗?您是否可以添加您正在使用的操作系统、shell和工具以提出疑问。@user2146441是的,Microsoft Windows可能与Unix有很大的不同,这些不同取决于您使用的Unix仿真系统e使用。
echo "id=\"12345678_name\">myname</td>" | sed -re 's~id=\"([0-9]+)_name\">([^<]+)</td>~\1, \2~g'
echo 'id=\"12345678_name\">myname</td>' |sed -r 's#id=\\"([[:digit:]]+)[^>]+>([[:alpha:]]+)</td>#\1, \2#g'