zoukankan      html  css  js  c++  java
  • 使用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
    }'
     
    
    输出
    *%%$#@
    
    
  • 相关阅读:
    速耀达数据库安装(速达二次开发)
    WCF错误:由于目标计算机积极拒绝,无法连接;127.0.0.1:3456
    HTTP 错误 403.14
    速耀达企业ERP试用说明流程
    速耀达ERP手机App开始内测,完全兼容速达5000以上的任何版本
    新版速云达App即将发布内测
    如何解决速达软件出现主键、单号、编码相同的报错
    NTP服务器搭建
    linux操作系统不重启添加raid0步骤
    反向代理负载均衡调度:nginx
  • 原文地址:https://www.cnblogs.com/muahao/p/6729603.html
Copyright © 2011-2022 走看看