我正在尝试在一些包含短语分隔的文本中使用 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 有什么想法吗?

最佳答案

你可以试试这个 sed

sed -E ':A;s/(>[^ ]*) ([^<]*<)/\1_\2/;tA;s/<[/]*phrase>/__/g'

关于bash - 使用 sed 在捕获组内替换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48754522/

10-14 06:44