我正在尝试在包含短语分隔的文本中使用word2vec,例如
I <phrase>like green beans</phrase> in my tortillas.
在将文本提供给word2vec之前,我需要输入:
I __like_green_beans__ in my tortillas.
我一直在尝试使用 sed 进行替换。通过做
sed -e 's@<phrase>\(.*\)</phrase>@__\1__@g' myfile.txt
我可以摆脱分隔符,但我还没有找到替换捕获组内空间的方法。
是否可以使用 sed ?
答案 0 :(得分:3)
你可以试试这个sed
sed -E ':A;s/(>[^ ]*) ([^<]*<)/\1_\2/;tA;s/<[/]*phrase>/__/g'
答案 1 :(得分:2)
使用gnu-awk
:
awk -v ORS= -v RS='<phrase>.*</phrase>' '1;
RT{gsub(/<\/?phrase>/, "___", RT); gsub(/ /, "_", RT); print RT}' file
I ___like_green_beans___ in my tortillas.