zoukankan      html  css  js  c++  java
  • 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'

    aliyun活动 https://www.aliyun.com/acts/limit-buy?userCode=re2o7acl
  • 相关阅读:
    在 Windows 上测试 Redis Cluster的集群填坑笔记
    vmware安装黑苹果教程
    微信支付v3发布到iis时的证书问题
    Linux下安装SQL Server 2016(连接篇SQL Server on linux)
    Linux下安装SQL Server 2016(连接篇SQL Server on linux)
    Linux下安装SQL Server 2016(安装篇SQL Server on linux)
    Linux下安装SQL Server 2016(准备篇SQL Server on linux)
    客服端与服务端APP支付宝支付接口联调的那些坑
    ASP.NET MVC]WebAPI应用支持HTTPS的经验总结
    .net平台下C#socket通信(中)
  • 原文地址:https://www.cnblogs.com/wangbin/p/1540256.html
Copyright © 2011-2022 走看看