$ echo Hello There | tr [:lower:] [:upper:]下面是一个在脚本中使用这个命令的例子,当你要确保添加到文件中的所有文本都使用大写形式以保持一致性时(LCTT 译注:这里输入部门名称作为示例):
HELLO THERE
#!/bin/bash将顺序切换为 [:upper:] [:lower:] 会产生相反的效果,将所有大写的部门名称都转换为小写:
echo -n "Enter department name: "
read dept
echo $dept | tr [:lower:] [:upper:] >> depts
echo $dept | tr [:upper:] [:lower:] >> depts同样,你可以使用 sed 命令的 A-Z 和 a-z 字符串完成相同的操作:
echo $dept | tr a-z A-Z >> depts毫无疑问,反转 a-z 和 A-Z 字符串的顺序将产生相反的效果,将文本全部变为小写。
echo $dept | awk '{print toupper($0)}' >> depts相反操作(切换为小写)如下所示:
echo $dept | awk '{print tolower($0)}' >> depts使用 sed
echo $dept | sed 's/[a-z]/\U&/g' >> depts从大写字母切换到小写字母只需将行尾附近的 U 替换为 L。
echo $dept | sed 's/[A-Z]/\L&/g' >> depts操作文件中的文本
$ awk '{print tolower($0)}' depts如果要覆盖 depts 文件,而不仅仅是以小写形式显示,则需要执行以下操作:
finance
billing
bookkeeping
$ awk '{print tolower($0)}' depts > depts-但是,使用 sed 进行更改,你可以避免最后一步,因为 sed 可以“原地”编辑文件,如下所示,文件完整,但文本全部小写:
$ mv depts- depts
$ sed 's/[A-Z]/\L&/g' depts仅将首字母转换为大写
$ echo design \& engineering| sed -e "s/\b\(.\)/\u\1/g"该命令将确保首字母大写,但不会更改其余字母。
Design & Engineering
$ echo design \& ENGINEERING | sed 's/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\u\1\L\2/g'使用 Python
Design & Engineering
$ echo -n "design & engineering" | python3 -c "import sys; print(sys.stdin.read.title)"有多种方法可以在大小写之间更改文本格式。哪种方法效果最好取决于你要处理的是单个字符串还是整个文件,以及想要的最终结果。
Design & Engineering
欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/) | Powered by Discuz! X3.2 |