Convert text to upper/lower case using sed

最近需要寫一段程式去解析並編輯 /etc/hosts 這個檔案, 由於 hostname 是不區分大小寫的, 所以在操作前先統一轉換成大寫會較方便. 試了幾種不同的寫法, 發現還是 sed 幹起來最漂亮, 可以一句話搞定.

sed 's/\(.*\)/\U\1/'

Hint: 如果要轉小寫則改用 \L

簡單說明一下: 1. (.*) 可以 match 所有字符, 因為 () 都不是 meta charactor, 故再加上 escape sequence 就變成 \(.*\). 2. \U 把接在後面的字符都轉大寫. 3. \1 參考第一項 match 到的字符.

kfei

Hacker / Tenniser / Photographer / Diver / Entrepreneur

Kaohsiung, Taiwan https://kfei.net

看文章如果不回應, 跟條鹹魚有什麼分別?