xor*_*eed 4 shell sed awk text-processing text
我需要所有 2-3 个字符的单词完全大写。1 个字符和 4 个以上字符的单词需要保持不变。
输入:
cat Example
Dog
I
Fish
su
Su adm
Amd Cat ignore
Run Code Online (Sandbox Code Playgroud)
预期输出:
CAT Example
DOG
a
Fish
SU
SU ADM
ADM CAT ignore
Run Code Online (Sandbox Code Playgroud)
sse*_*taH 13
使用GNUsed
$ sed -E 's/\<[[:alpha:]]{2,3}\>/\U&/g' input_file
DOG
I
Fish
SU
SU ADM
AMD CAT ignore
Run Code Online (Sandbox Code Playgroud)
我会使用 perl 代替:
\n$ perl -pe 's/\\b\\w{2,3}\\b/uc($&)/eg' file\nCAT Example\nDOG\nI\nFish\nSU\nSU ADM\nAMD CAT ignore\n
Run Code Online (Sandbox Code Playgroud)\n如果您的文件包含以 UTF-8 编码的非 ASCII 字符,并且您的区域设置使用 UTF-8 作为字符映射,例如st\xc3\xa9
应变为 的字符串ST\xc3\x89
,则使用:
$ perl -C -pe 's/\\b\\w{2,3}\\b/uc($&)/eg' file\nCAT Example\nDOG\nI\nFish\nSU\nSU ADM\nAMD CAT ignore\nST\xc3\x89\n
Run Code Online (Sandbox Code Playgroud)\n