生成字母a-z $ echo {a..z} $ echo {A..Z}
生成不带空格的字母a-z $ printf "%c" {a..z} $ printf "%c" {A..Z} 加入空行: $ printf "%c" {a..z} $'n' $ printf "%c" {A..Z} $'n' # 或 $ echo $(printf "%c" {a..z}) $ echo $(printf "%c" {A..Z})
一行一个字符: $ printf "%cn" {a..z} 同样的,也可以生成数字: $ echo {1..100} 或 $ seq 1 100
在数字前补零 $ printf "%02d " {0..9}
字符串排列组合 $ echo {a,b,c}{1,2,3}
取a和{1,2,3}组合生成a1,a2,a3, b,c同理。
生成10个字符串的拷贝 $ echo foo{,,,,,,,,,,}
连接两个字符串 $ x=abc $ b=def $ echo "$x$y"
用指定字符分割字符串 $ IFS=- read -ra parts <<< "abc-def-ght" $ echo ${parts[0]} $ echo ${parts[1]} $ echo ${parts[2]}
遍历字符串 $ str=abcdef $ while IFS= read -rn1 c; do echo $c done <<< "$str"
字符串替换 $ str=foo_bar_foo_bar $ echo ${str/foo/bar} ${var/find/replace},把先找到的foo替换为bar
替换全部: $ str=foo_bar_foo_bar $ echo ${str//foo/bar}
字符串匹配 $ if [[ $file = *.zip ]]; then # do something fi 判断file是不是zip文件。
正则表达式 $ if [[ $str =~ [0-9]+.[0-9]+ ]]; then # do something fi 上面匹配一个数字,一个点,一个数字。
获得字符串的长度 $ str=abcdef $ echo ${#str}
提取字符串中的子串 $ str="hello world" $ echo ${str:6} $ echo ${str:7:2}
字符串中字母转大写 $ declare -u var $ var="abc def" $ echo $var 或 $ str="abc def" $ echo ${str^^}
字符串中字母转小写 $ declare -l var $ var="ABC DEF" $ echo $var 或 $ str="ABC DEF" $ echo ${str,,}
|