在Splunk中将一组字符转换为另一组字符

时间:2018-05-24 14:42:24

标签: regex substitution splunk regular-language rex

我需要使用一个替换正则表达式和5个捕获组替换西班牙语字母的5个元音中的所有重音。

在我的文中我有áéíóúàèìòù等等。到现在为止我有这个正则表达式:

s/(=?[àáÀÁ])|(=?[èéÈÉ])|(=?[ìíÌÍ])|(=?[òóÒÓ])|(=?[ùúÙÚ])/$1$2$3$4$5/g

但是这个正则表达式给了我每组的相同结果。

有没有办法在不同的群体中获得不同的价值?像这样:

group1($ 1) - >甲

group2($ 2) - > ë

group3($ 3) - >我

group3($ 4) - > 0

group3($ 5) - > û

我知道如何使用5种不同的正则表达式来做到这一点,但我需要只用一种。有什么想法吗?

非常感谢!!

1 个答案:

答案 0 :(得分:0)

我不知道用一个正则表达式来做这件事(虽然我很乐意被证明是错的。)

对于这种情况,

sed有一个专门的命令y / transliterate

sed -e 'y/àáÀÁèéÈÉìíÌÍòóÒÓùúÙÚ/aaAAeeEEiiIIooOOuuUU/'

但是,它不会帮助您从要翻译的字符前面删除前导=。你能结合两个sed命令吗?例如

sed -e '{ y/àáÀÁèéÈÉìíÌÍòóÒÓùúÙÚ/AAAAEEEEIIIIOOOOUUUU/; s/=\([AEIOU]\)/\1/g; }'