uppercase to lowercase in bash on a mac
我正在编写一个bash脚本,它需要将字符串转换为小写。问题是我是在Mac上做的,所以"tr"不可用。我怎么能在Mac上做这个呢?
我要解决的问题是,我的脚本需要识别扩展名是.gif还是.jpg,而我不想检查.jpeg,.jpeg,.jpeg,.jpeg等等…如果有一种比转换为小写字母和测试gif、jpg和jpeg更聪明的方法,我会全神贯注的:)
更新:我是个白痴。这个mac"没有"这些基本的文本转换程序的原因是我在做一些测试时用"hello"覆盖了路径>。_<
在bash中,您可以使用nocaseglob
1 2 3 4 5 6 7 | shopt -s nocaseglob for file in *.jpg *.jpeg *.gif do echo"$file" done #turn off shopt -u nocaseglob |
一般来说,转换案例的方式多种多样
1 2 3 4 5 | echo"stRING" | awk '{print toupper($0)}' echo"STRING" | tr"[A-Z]""[a-z]" # upper to lower echo"StrinNG" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' #lower to upper |
它内置于bash中:
要将$Y转换为大写:
1 2 | y="this Is A test" echo"${y^^}" |
并将$Y转换为小写:
1 2 | y="THIS IS a TeSt" echo"${y,,}" |
1 2 | $ echo 'this IS some TEXT' | tr '[:upper:]' '[:lower:]' this is some text |
在bash中,可以使用大写:
1 2 3 4 5 | echo"HelLo! how ArE you?" | capitalize -u echo"HelLo! how ArE you?" | capitalize -l echo"HelLo! how ArE you?" | capitalize -c |