• 使用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
    }'
     
    
    输出
    *%%$#@
    
    
  • 相关阅读:
    谈谈我对服务熔断、服务降级的理解
    PS-AXI-GPIO-流水灯设计
    立创EDA的使用
    multisim的操作回顾
    verilog的文件流和项目流
    AXI4的主从机的收发机制
    AXI4协议的物理模型
    verilog中的数据类型
    matlab的基本操作
    ARM之AXI总线协议初试
  • 原文地址:https://www.cnblogs.com/muahao/p/6729603.html
Copyright © 2020-2023  润新知