Sed:匹配单词与两个字符的任意排列

Sed: Matching words with any permutation of two characters

我正在尝试匹配语料库中的所有笑话并将它们转换为一个标准词,例如 "haha"。笑话的例子有

jaja
jjjaaja
aaajajja
ajaj

等等。我想我所需要的只是一种匹配所有单词的方法,任何长度,只包含 ja,以任何顺序和/或数量.我尝试了在答案 here 中找到的正则表达式,但其中 none 有效。其中一个答案启发了我尝试这个

sed 's/ a*j*a*j*[ja]* / haha /g' 

将语料库中的一半单词转换为"haha"。我已经弄乱了这个命令一段时间并尝试了不同的东西,但我似乎无法理解。所以非常感谢你的帮助。

顺便说一句,我正在使用 OSX El Captain。

您可以使用这个 sed 命令:

sed 's/\b[ja]\+\b/haha/g' file
haha
haha
haha
haha

但是请记住,这将命令 aj 的任意组合。