通配符及变量

通配符{}的用法,..表示一个区间的字符,,表示几个不连续的字符

通配符[a-z]表示其中的任何一个字符

[root@b abc]# echo {a..d}
a b c d
[root@b abc]# echo {a,c,h}
a c h

[root@b abc]# pwd
/root/test/abc

[root@b abc]# echo {a,b,`pwd`}
a b  /root/test/abc


[root@b abc]# echo {a-z}
{a-z}
[root@b abc]# echo {abcdef}
{abcdef}
[root@b abc]# echo [a-z]
[a-z]

[root@b test]# ls [a-z].txt
a.txt  b.txt  f.txt   h.txt   l.txt  m.txt  s.txt

[root@b abc]# echo {a..b}{a..b}{a..b}{a..b}{a..b}|xargs -n1 | wc -l
32

[root@b abc]# mkdir {a..b}/{a..b}/{a..b} -p
[root@b abc]# tree
.
├── a
│   ├── a
│   │   ├── a
│   │   └── b
│   └── b
│   ├── a
│   └── b
└── b
├── a
│   ├── a
│   └── b
└── b
├── a
└── b

14 directories, 0 files

[root@b abc]# echo {1..99}{1..99}{a..z}{A..Z} 

#共有6625476个数字输出,如果计算机性能不行就会内存溢出,系统死掉

通配符?表示任意一个字符,*代表任意0个或多个字符

[root@b test]# ls ?.txt
a.txt b.txt f.txt h.txt l.txt m.txt s.txt

[root@b test]# ls ?*.txt
abcd.txt ab.txt b.txt h.txt m.txt xo.txt
abc.txt a.txt f.txt l.txt s.txt zhiwen.txt
[root@b test]# ls ??*.txt
abcd.txt abc.txt ab.txt xo.txt zhiwen.txt

通配符的作用通常是是匹配文件名称

a=hostname.ssl.hn_hk.csg.cn

#查看变量的字符串长度

echo ${#a}

##删除字符串hostname字符

echo ${a#hostname}

#删除字符串(#从前往后删除,直到删除最后一个.##贪婪匹配)

echo ${a##*.}

#删除字符串.cn(@从后往前删除)

echo ${a@.cn}

#删除字符串(@从后往前删除,知道删除最后一个.,@@贪婪匹配

echo ${a@@*.}

#字符串切片显示

echo ${a:9:11}

原文地址:https://www.cnblogs.com/xiaofeng666/p/11099033.html