Shell
使用 awk 或 sed 將所有小字(2-3 個字元)轉換為大寫
我需要將所有 2-3 個字元的單詞全部大寫。1 個字元和 4 個以上字元的單詞需要保持不變。
輸入:
cat Example Dog I Fish su Su adm Amd Cat ignore
預期輸出:
CAT Example DOG I Fish SU SU ADM ADM CAT ignore
使用 GNU
sed
$ sed -E 's/\<[[:alpha:]]{2,3}\>/\U&/g' input_file DOG I Fish SU SU ADM AMD CAT ignore
我會改用 perl:
$ perl -pe 's/\b\w{2,3}\b/uc($&)/eg' file CAT Example DOG I Fish SU SU ADM AMD CAT ignore
如果您的文件包含以 UTF-8 編碼的非 ASCII 字元,並且您的語言環境使用 UTF-8 作為字元映射,例如
sté
應該變為的字元串STÉ
,則使用:$ perl -C -pe 's/\b\w{2,3}\b/uc($&)/eg' file CAT Example DOG I Fish SU SU ADM AMD CAT ignore STÉ