0

我正在尝试提出一个正则表达式,它将大写任何单词,但保留任何大写缩写和首字母缩略词。

例如,我希望 'london' 变成 'London' 但 'LA' 保持原样。理想情况下,任何两个字符词都将大写,例如,'la' → 'LA'。

大写字母很容易,但缩写/首字母缩略词让我望而却步。任何提示将不胜感激。

4

1 回答 1

2

用 GNU sed 试试这个:

sed 's/\b.\B/\u&/g;s/\b..\b/\U&/g' file

$猫文件
Lorem Ipsum 只是印刷和排版行业的虚拟文本。
自 1500 年代以来,Lorem Ipsum 一直是业界标准的虚拟文本,
当一个不知名的印刷商拿了一个打字机,并把它打乱,制作了一本打字样本书。

$ sed 's/\b.\B/\u&/g;s/\b..\b/\U&/g' 文件
Lorem Ipsum 只是印刷和排版行业的虚拟文本。
自 1500 年代以来,Lorem Ipsum 一直是业界标准的虚拟文本,
当一个不知名的打印机拿了一个类型的厨房并把它打乱来制作一本类型标本书。
于 2013-08-16T07:58:36.087 回答