我是靠谱客的博主 娇气方盒,这篇文章主要介绍awk 内嵌正则 提取字符串_使用awk提取字符串中的数字或字母,现在分享给大家,希望可以做个参考。

1.提取字符串中的数字

$ 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.提取字符串中的小写字母

$ echo 'dsFUs34tg*fs5a%8ar%$#@' |awk -F "" '

{

for(i=1;i<=NF;i++)

{

if ($i ~ /[[:lower:]]/)

{

str=$i

str1=(str1 str)

}

}

print str1

}'

输出

dsstgfsaar

3.提取字符串中的大写字母

$ echo 'dsFUs34tg*fs5a%8ar%$#@' |awk -F "" '

{

for(i=1;i<=NF;i++)

{

if ($i ~ /[[:upper:]]/)

{

str=$i

str1=(str1 str)

}

}

print str1

}'

输出

FU

4.提取字符串中的字母(不区分大小写)

法一:

$ 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.提取字符串中的非数字字符

法一:

$ 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.提取字符串中的除数字字母外的字符

法一:

$ 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

}'

输出

*%%$#@

最后

以上就是娇气方盒最近收集整理的关于awk 内嵌正则 提取字符串_使用awk提取字符串中的数字或字母的全部内容,更多相关awk内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部