【发布时间】:2023-03-04 09:51:01
【问题描述】:
我想转换一些 java 文件并将变音符号 Ö、ä 和 ü 替换为 unicode。
这是我的 sed 行:
sed -i '{ /^(#|\*$)/!s/0xE4/0xE4/g;/#/!s/Ä/0xC4/g;/#/!s/ö/0xF6/g;/#/!s/Ö/0xD6/g;/#/!s/ü/0xFC/g;/#/!s/Ü/0xDC/g; }'
场景:
在 sed 之前它看起来像:
# comment with umlauts ÄÄÄÄÄÄÖÖÖÖÖ
ÖÖÖÖÖÖÖÖÖ
// comment with umlauts ÄÄÄÄÄÄÖÖÖÖÖ
Text text text ÄÄÄÄÄÖÖÖÖÖ
/*
* comment with umlauts ÄÄÄÄÄÄÖÖÖÖÖ
*/
之后应该是这样的:
# comment with umlauts ÄÄÄÄÄÄÖÖÖÖÖ
0xD60xD60xD60xD60xD60xD60xD60xD60xD60xD60xD60xD6
// comment with umlauts ÄÄÄÄÄÄÖÖÖÖÖ
Text text text 0xC40xC40xC40xC40xC40xD60xD60xD60xD60xD6
/*
* comment with umlauts ÄÄÄÄÄÄÖÖÖÖÖ
*/
谁能帮我匹配一下? - 我有,但它不能正常工作:
/^(#|\*$)/!
【问题讨论】:
-
您到底想达到什么目的?用出现在 cmets 之外的变音符号替换字符是什么? Java unicode 转义(\u1234)?字符串“0x12”?字符 0x12?
标签: linux unicode sed string-matching