zoukankan      html  css  js  c++  java
  • shell中字符串的处理

    原文链接

    摘要:shell中字符串的处理
      对字符串的处理
      包括:截取,连接,匹配,替换,翻转... ...
      一天累积一点!
      字符串的处理:
      1,截取
      方法一:
      echo $a|awk ’{print substr( ,1,8)}’
      substr是awk中的一个子函数,对第一个参数的进行截取,从第一个字符开始,共截取8个字符,如果不够就从第二个字符中补充
      方法二
      echo $a|cut -b2-8
      cut:对标准输入的字符串进行处理
      cut -bn-m:以byte为单位,从第n个byte开始,取m个
      cut -bn,m:以byte为单位,截取第n,m个byte
      cut -b-n,m:以byte为单位,截取1-n,和第m个
      -c:以charactor为单位
      -d:指定分隔符,默认为tab
      -s:使标准输入中没有delimeter
      cut -f1:截取第1个域
      方法三
      a=123456
      echo $
      方法四
      使用sed截取字符串的最后两位
      echo $test |sed ’s//(.*/)/(../)$//’
      截取字符串的前2位
      echo $test |sed ’s/^/(../)/(.*/)//’
      2,比较
      好像没有什么可以比较的
      3,连接
      $a$b
      或者
      $string
      4,翻转
      方法一:
      使用rev命令
      方法二:
      编写脚本实现
      #!/usr/bin/awk -f
      ################################################################
      # Description : duplicate rev in awk
      ################################################################
      {
      revline = ""
      for (i=1;i<=length;i++)
      {
      revline = substr(,i,1) revline
      }
      }
      END{print revline}
      5,匹配
      grep
      egrep
      fgrep
      6,排序
      7,替换
      bash中:
      %x=abcdabcd 
      %echo $ # 只替换一个 
      bbcdabcd 
      %echo $ # 替换所有 
      bbcdbbcd 
      sh中:
      ??
      如何替换/
      使用sed
      替换所有匹配
      echo $test |sed ’s/xx/yy’
      替换单个匹配
      ??
      8,得到字符串的长度:
      bash当中
      $
      或者
      expr "$VAR" : ’.*’
      9,判断字符串是否为数字
      10,得到字符串中某个字符的重复次数
      echo $a |tr "x" "/n" |wc -l
      得到的结果需要减去1
      或者
      echo $a |awk -F"x" ’{print NF-1}’
      11,得到字符串中某个string的重复次数
      12,将一批文件中的所有string替换
      for i in file_list 
      do 
      vi $i <<-! 
      :g/xxxx/s//XXXX/g 
      :wq 
      ! 
      done
      13,如何将字符串内每两个字符中间插入一个字符
      使用sed
      echo $test |sed ’s/../&[insert char]/g’

  • 相关阅读:
    深入理解JavaScript中的this关键字
    使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹
    使用 BEGINCONTENT() 和 ENDCONTENT() 设定 YII 的 LAYOUTS
    孙悟空的师傅是谁
    PHP MemCached高级缓存配置图文教程
    C++中的基类与派生类
    矩阵快速幂
    华为上机测试题
    2016网易研发题目
    冒泡排序
  • 原文地址:https://www.cnblogs.com/wangkangluo1/p/2548636.html
Copyright © 2011-2022 走看看