当前位置: 首页 > 科技观察

在Linux行内直接进行大小写转换

时间:2023-03-13 23:37:54 科技观察

直接在Linux行中进行大小写转换命令。接下来我们看一下完成大小写转换的命令。tr命令tr(翻译)是最简单的大小写转换命令之一,可以在命令行或脚本中使用。例如,如果要制作一个全部为大写字母的字符串,可以使用以下命令来完成此内容:$echohelloalvin|tr[:lower:][:upper:]HELLOALVIN下面是应用于脚本的命令例如,写入文件depts的内容将采用大写格式:$echo"Enterdepartmentname:"|tr[:lower:][:upper:]>>depts以上命令的顺序改为[:upper:][:lower:]会得到相反的结果,所有输入的字母都会变成小写字母:$echo"Enterdepartmentname:"|tr[:upper:][:lower:]>>deptsyoucanuseA-Za-zinsteadof[:upper:][:lower:]达到同样的效果:$echo"Enterdepartmentname:"|tra-zA-Z>>deptsawk命令awk命令使用toupper和tolower两个选项完成大小写转换。上面描述的脚本的大小写转换可以用下面这个命令来完成:$echo"Enterdepartmentname:"|awk'{printtoupper($0)}'>>depts上面的转换为大写字母,下面是转换为小写字母的方法:$echo"Enterdepartmentname:"|awk'{printtolower($0)}'>>deptssed命令sed(流编辑器)命令也可以很好的完成大小写转换工作,下面的命令也可以实现前面两条命令的效果:$echo"Enterdepartmentname:"|sed's/[a-z]/\U&/g'>>depts完成相反的转换,只要把上面命令中的U换成L,[a-z]即可替换为[A-Z]:$echo"Enterdepartmentname:"|sed's/[A-Z]/\L&/g'>>depts修改文件中文本内容的大小写格式,awk和sed命令可以完成整个文档内容的大小写转换有效,因此如果您需要将整个文档内容转换为小写,您可以在lo中将文件内容打印到屏幕wercase用以下命令:$awk'{printtolower($0)}'depts结果如下:enterdepartmentname:financebillingbookkeeping注意这个结果只是将屏幕上打印的内容转换为小写,文档本身的大写字母没有改变。可以使用catdepts命令查看。如果要真正修改文档内容的大小写,可以使用下面的命令来完成:但在用法上略有不同,其用法如下:$sed's/[A-Z]/\L&/g'depts只大写首字母,只将一串字符串中每个单词的首字母大写,可以通过以下命令完成:$echodesign\&engineering|sed-e"s/\b\(.\)/\u\1/g"Design&Engineering以上命令只能首字母大写,其他字母保留不变。确保只有第一个字母大写当您需要对大量文本执行此操作时,例如以正确格式显示大量人名,事情会变得有点困难。这里有两种方法可以完成这个任务:使用sed命令来完成为确保结果正确,需要更复杂的sed命令格式:$echodesign\&ENGINEERING|sed's/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\u\1\L\2/g'设计&工程用python代码完成如果你的Linux上安装了python,你可以使用下面的命令来完成文本首字母大写python代码比上面sed命令的正则表达式更容易理解:$echo-n"design&engineering"|python3-c"importsys;print(sys.stdin.read().title())"Design&EngineeringLinux大小写转换的命令有很多,使用哪个更好取决于你处理的是一串字符还是整个文件。希望本文介绍的各种命令能够对您有所帮助。如果你对这些命令有什么疑问,欢迎留言讨论!本文经授权转载自公众号「良墟Linux」。世界500强外企Linux开发工程师梁旭,在公众号分享大量Linux干货,欢迎关注!