Shell

將文件內容轉換為小寫

  • February 21, 2021

我有temp一些小寫和大寫內容的文件。

輸入

我的temp文件內容:

hi
Jigar
GANDHI
jiga

我想將所有upper 轉換為 lower

命令

我嘗試了以下命令:

sed -e "s/[A-Z]/[a-z]/g" temp

但輸出錯誤。

輸出

我希望它為:

hi
jigar
gandhi
jiga

參數的替代部分需要sed什麼?

如果您的輸入僅包含 ASCII 字元,您可以使用tr如下:

tr A-Z a-z < input 

或(不太容易記住和輸入 IMO;但不限於 ASCII 拉丁字母,儘管在包括 GNU 在內的某些實現中tr,仍僅限於單字節字元,因此在 UTF-8 語言環境中,仍僅限於 ASCII 字母):

tr '[:upper:]' '[:lower:]' < input

如果你必須使用sed

sed 's/.*/\L&/g' < input

(這裡假設 GNU 實現)。

使用 POSIX sed,您需要指定所有音譯,然後您可以選擇要轉換的字母:

sed 'y/AǼBCΓDEFGH.../aǽbcγdefgh.../' < input

awk

awk '{print tolower($0)}' < input

引用自:https://unix.stackexchange.com/questions/171603