zoukankan      html  css  js  c++  java
  • shell 截取字符串

    shell 截取字符串(cut, sed, awk)

    cut

    -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
    -c :以字符为单位进行分割。
    -d:自定义分隔符,默认为制表符。
    -f:与-d一起使用,指定显示哪个区域。
    -n:取消分割多字节字符。仅和-b标志一起使用。如果字符的最后一个字节落在由-b标志的List参数指示的范围之内,该字符将被写出;否则,该字符将被排除。
    
    -b
    .eg1:然后调用cut,即剪切字符串中的第2和第5个字节。
    echo"123abc"|cut -b 2,5
    -----------------------
    输出为2b
    
    eg2:cut掉11-14位置的字符
    
    echo "123456789abcdefghjklmnopq" | cut -b 11-14
    -----------------------------------------------
    输出为bcde
    
    
    -c
    用法示例输出/etc/passwd文件每一行的前4个字符$ sudo cut -c 1-4 /etc/passwd
    
    
    -d
    
    cut命令用于列提取,默认分隔符是tab键。
    选项:-d指定分隔符,-f指定提取第几列
    eg1: 以%作为分隔符 输出第一个%前的区域1的东西,输出区域2的东西   
    root@ROUTER:~# echo "CPU:  busy 14%  (system=10% user=3% nice=0% idle=85%)" | cut -d \% -f 1
    CPU:  busy 14
    root@ROUTER:~# echo "CPU:  busy 14%  (system=10% user=3% nice=0% idle=85%)" | cut -d \% -f 2
      (system=10
    root@ROUTER:~# echo "CPU:  busy 14%  (system=10% user=3% nice=0% idle=85%)" | cut -b 11-14 | cut -d \% -f 1
     14
    root@ROUTER:~# echo "CPU:  busy 14%  (system=10% user=3% nice=0% idle=85%)" | cut -b 11-14 
     14%   
    

    sed

    eg1:去除文本中的所有数字
    sed 's/[0-9]//g'
    [0-9]匹配一个数字,
    
    s/A/B/ 将A替换为B
    g表示全局替换为空格
    
    
    eg2:取当前的接口的ip,把所有的:替换为空格,然后打印出空格为分割的第几个数
    root@Evelyn:~# ifconfig ens33 | grep Bcast | sed 's/:/ /g' | awk '{print $3}'
    192.168.23.44
    
    
    eg3:取出延时时间的数字
    ping 192.168.120.1 -s 1000 -c 5 | grep time | sed 's/=/ /g' | awk '{print $10}'
    
    

    awk

    语法格式:awk '条件1{动作1}条件2{动作2}...' 文件

    条件,一般使用关系表达式作为条件,如a>10。动作,格式化输出或流程控制语句

    awk一次读入一整行,默认以tab键或者空格为分隔符将一行分为多个字段,表示为$1、$2、$3...其中$0表示文件名

    start_line=`grep -in 'set task group' $ROOTPATH/../../core/helloworld.c |awk 'BEGIN {FS=":"} {print $1}'`
    
  • 相关阅读:
    HDU ACM 1071 The area 定积分计算
    Effective C++:条款25:考虑写出一个不抛异常的swap函数
    史上最全站点降权原因解析
    shell脚本中的数学运算
    Spark 1.0.0 横空出世 Spark on Yarn 部署(Hadoop 2.4)
    索尼 LT26I刷机包 X.I.D 增加官方风格 GF A3.9.4 各方面完美
    Swift基础--使用TableViewController自己定义列表
    勒索软件出新招,小心你的隐私和財产安全!
    Http协议具体解释
    Android Studio解决unspecified on project app resolves to an APK archive which is not supported
  • 原文地址:https://www.cnblogs.com/michaelcjl/p/15190149.html
Copyright © 2011-2022 走看看