有很多方法可以改变文本从小写在Linux命令行上为大写,反之亦然。事实上,你有一个令人印象深刻的一组命令可供选择。这篇文章探讨了一些才行,以及如何让他们做你想要的东西,最好的命令。
使用tr
的tr命令是命令行或脚本中最容易使用的命令之一。如果你有一个你想要确保是大写的字符串,你只需要把它传递给atr命令如下:
$ echo Hello There | tr [:lower:] [:upper:] Hello There
下面是一个在脚本中使用这种命令的例子,当你想要确保添加到文件中的所有文本都是大写的,以保持一致性:
#!/斌/庆典回声-n“输入部门名称:”读部门回声$部门|TR [:降低:] [:上:] >>科指南
切换为[:上:] [:降低:]会产生相反的效果,把所有的部门名称以小写:
echo $dept | [:upper:] [:lower:] >>
类似地,你可以用sed命令的A-Z和无所不包的字符串完成同样的事情:
echo $dept | tr a-z a-z >>部门
正如您所怀疑的那样,颠倒a-z和a-z字符串的顺序将产生相反的效果,将文本全部转换为小写。
使用awk
的AWKcommand可以让你用它做同样的事情toupper和放低选项。在前面的例子中显示的脚本中的命令可以这样做:
echo $dept | awk '{print toupper($0)}' >>
相反(转换成小写)应该是这样的:
回声$部门|AWK '{打印的tolower($ 0)}' >>科指南
使用sed
的sed(流编辑器)命令也做的大写和小写之间切换的非常出色。此命令将具有如上所示的第一两个相同的效果。
回声$部门|SED的/ [A-Z] / \ U&/ G'>>科指南
从大写字母转换为小写字母只需要替换U在这一行的最后l。
echo $dept | sed 's/[A-Z]/\ l&g ' >
在一个文件中处理文本
都AWK和sed还允许您更改整个文件的文本大小写。那么,你刚刚发现你的老板想要那些全是小写的部门名称?没有问题。只需运行这样的命令与文件名提供:
$ awk '{print tolower($0)}'部门财务记账
如果你想覆盖部门文件,而不是只是显示其内容小写,你需要做这样的事情:
$ awk '{print tolower($0)}' depts > depts- $ mv depts- depts
做出改变sed但是,你能避免这最后一步,因为sed可以编辑一个文件“在适当的地方”显示在这里,保持文件完整,但文本都小写:
$ sed 's/[A-Z]/\ l&g '部门
善用只有第一个字母
要将字符串中单词的首字母大写,可以这样做:
$呼应设计\ &工程| sed - e " s / \ b \ \ () / \ \ 1 / u g”
设计与工程
该命令将确保第一个字母是大写的,但不会更改其余的字母。
确保只有第一个字母是大写的
当您想要更改文本以使只有第一个字母是大写的时候,这有点挑战性。假设您正在操作一个职员姓名列表,并希望按照正常的Firstname Lastname方式对其进行格式化。
与对话
你可以使用一个复杂得多sed命令来确保这个结果:
美元呼应设计\ &工程| sed ' s / b \ \([[:α:]]\)\([[:α:]]* \)\ b / L \ u \ 1 \ \ 2 / g”设计与工程
与Python
如果已经加载了python,可以运行这样的命令,它也可以格式化文本,这样每个单词的首字母都是大写的,而且该命令可能比sed上面的命令:
$ echo -n "design & engineering" | python3 -c "导入系统;打印(sys.stdin.read () .title ())”设计与工程
有很多方法来改变大写和小写之间的文本格式。哪个最依赖于你是否正在操纵一个字符串或整个文件的组成部分,如何你想要的最终结果看。