shell編程經常會碰到字符串、文件內容大小寫的轉換,在不同的場景下選擇合適的命令可以提高編程效率。
適用場景
需大小寫轉換的文件內容或字符串
字符串大小寫替換
小寫替換大寫
echo "hello world" | tr '[a-z]' '[A-Z]' echo "hello world" | tr '[:lower:]' '[:upper:]'
大寫替換小寫
echo "hello world" | tr '[A-Z]' '[a-z]' echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]'
大小寫互換
echo "Hello World" | tr '[a-zA-Z]' '[A-Za-z]'
文件內容大小寫替換<原地置換>
小寫替換大寫
sed -i 's/[a-z]/\u&/g' filename
大寫替換小寫
sed -i 's/[A-Z]/\u&/g' filename
單詞首字母替換成大寫
sed -i 's/\b[a-z]/\u&/g' filename
文件內容大小寫替換<需重定向>
tr 'a-z' 'A-Z' < filename1 > filename2 #小寫替換成大寫 tr 'A-Z' 'a-z' < filename1 > filename2 #大寫替換成小寫 awk '{print toupper($0)}' filename1 > filename2 #小寫替換成大寫 awk '{print tolower($0)}' filename1 > filename2 #大寫替換成小寫