在Linux命令行上进行大小写转换

转换大写和小写之间的文本可以是非常繁琐的,尤其是当你想避免无意中拼写错误。幸运的是,Linux提供,可以使工作更加简单了少数命令。

有很多方法可以改变文本从小写在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 ' >

在一个文件中处理文本

AWKsed还允许您更改整个文件的文本大小写。那么,你刚刚发现你的老板想要那些全是小写的部门名称?没有问题。只需运行这样的命令与文件名提供:

$ 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 ())”设计与工程

有很多方法来改变大写和小写之间的文本格式。哪个最依赖于你是否正在操纵一个字符串或整个文件的组成部分,如何你想要的最终结果看。

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对那些顶级心态的话题发表评论。
相关:

版权©2020Raybet2

工资调查:结果在