使用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
}'
 

輸出
*%%$#@


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM