1.提取字符串中的数字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[[:digit:]]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出
3458
或
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[0-9]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出
3458
|
2.提取字符串中的小写字母
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[[:lower:]]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出
dsstgfsaar
|
3.提取字符串中的大写字母
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[[:upper:]]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出
FU
|
4.提取字符串中的字母(不区分大小写)
法一:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[a-z]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出
dsFUstgfsaar
法二:
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[[:alpha:]]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出:
dsFUstgfsaar
|
5.提取字符串中的非数字字符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
法一:
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[^0-9]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出
dsFUstg*fsa%ar%$
#@
法二:
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i !~ /[0-9]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出
dsFUstg*fsa%ar%$
#@
法三:
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[^[:digit:]]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出
dsFUstg*fsa%ar%$
#@
|
6.提取字符串中的除数字字母外的字符
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
法一:
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[^0-9a-zA-Z]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出:
*%%$
#@
法二:
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[^[:alnum:]]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出:
*%%$
#@
法三:
$
echo
'dsFUs34tg*fs5a%8ar%$#@'
|
awk
-F
""
'
{
for
(i=1;i<=NF;i++)
{
if
($i ~ /[^[:digit:]]/ && $i ~ /[^[:lower:]]/ && $i ~ /[^[:upper:]]/)
{
str=$i
str1=(str1 str)
}
}
print str1
}'
输出
*%%$
#@
|
本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1855224,如需转载请自行联系原作者