Linux字符处理总结

作者: georgesre | 来源:发表于2019-06-08 10:59 被阅读0次

    0. Awk

    Extract zip download information from web source code and wget all of them:
    grep zip web_source.data | awk -F "\"" '{print $12}’

    http://www.stanford.edu/class/cs193p/cgi-bin/drupal/system/files/sample_code/Attribute.zip
    http://www.stanford.edu/class/cs193p/cgi-bin/drupal/system/files/sample_code/MultiMVC%20Matchismo.zip

    1.tr 函数的使用:所有的小写字母变成大写

    read answer
    answer=echo $answer | tr [a-z] [A-Z]
    把answer中的内容读取出来传递给tr函数,tr函数把answer中所有的小写字母变成大写字母

    2. echo的使用:输出但是不换行

    echo -n "Can you write device drivers?"
    输出但是不换行

    3. 使用cut选定字段

    ls -l | cut -c 1-10 选定每行前10个字符
    cut -d : -f 1,5 /etc/passwd 以:为界定符,选取passwd文件的第一个和第五个字段

    4. tr命令的使用

    语法如下:tr [options] source-char-list replace-char-list
    示例:有一个test文件,内容为:aaabbbcccdddefghiii

    tr -c "a" "z" < test | cat            得到结果:aaazzzzzzzzzzzzzzzzz,除了a以外,其它字符都用z替换
    tr -d "ad" < test | cat               得到结果:bbbcccefghiii,a和d字符被删除
    tr -s "ad" < test | cat               得到结果:abbbcccdefghiii,浓缩a和d字符为一个
    

    5.去空格和空行:

    去除所有空格:
    sed 's/ //g'
    去除多个空格:
    sed -e 's/[[:space:]][[:space:]]*/ /g'
    去除行首的空格:
    sed 's/^[ \t]*//'
    把tab变成空格:
    sed 's/\t/ /g' filename
    删除文件中的空行:
    sed /^$/d filename
    删除内容为多个空格/tab组成的行:
    sed /^[[:space:]]*$/d filename
    

    6.确定一串字符的长度:AWK方法

    echo "hsdfsdfds fdsf" | awk '{ printf ("%d",length($0)) }'
    EXECUTOR=ecefjma
    USER_RIGTHS_FILE=user_rights
    [root@xiwen-aly xiwen]# grep ecefjma user_rights
    ecefjma francisco.javier.mateos@ericsson.com ADMIN
    gawk '$1 == "'$EXECUTOR'" {print $3}' $USER_RIGTHS_FILE
    ADMIN
    

    7.关于expr从特定位置取特定长度字符问题:

    [root@localhost findcdr]# ms=`expr substr 123456 3 2`
    [root@localhost findcdr]# echo $ms
    34
    

    8.linux输出指定行

    linux输出指定行
    eg: 输出第10行。
    sed -n "10,1p" filename
     
    显示整个文件:  sed -n '1,$'p temp.txt      $为最后一行
    

    9.Echo Format character and other advance usage.

            echo -n "Please, do "'\E[1;33;44m'"NOT"; tput sgr0
            echo -e " book a eselnvmai 1xxx if you DO NOT NEED to run SAPC"; tput
    

    10. Sed

     ```
    sed -i '/inset_bf_here/icontent_inserted' /etc/security/limits.conf
     
    [root@aly ~]# echo "qwert aaaaa" | sed 's/\([^ ]\+\).*$/\1/'
    qwert
     
    [root@aly ~]# echo " qwert aaaaa" | sed 's|\([^ ]\+\).*$|\1|'
     qwert
     
    \1 instead of change, it just display what is regulared.
    awk -F"=" '{ print $2 }' | awk -F" " '{ print $1 }' 
    
    
    > 云平台开发运维解决方案@george.sre
    > 
    > [个人主页:https://geekgoogle.com](https://github.com/george-sre)
    > 
    > [GitHub](https://github.com/george-sre): [https://github.com/george-sre](https://github.com/george-sre)
    > 
    > [Mail](https://george.sre@hotmail.com): [george.sre@hotmail.com](https://george.sre@hotmail.com)
    >
    > [简书](https://www.jianshu.com/u/1dccda0ce716): [georgesre - 简书](https://www.jianshu.com/u/
    > [知乎](https://www.zhihu.com/people/george.sre): [george.sre - 知乎](https://www.zhihu.com/people/george.sre)
    >
    > 欢迎交流~
    
    

    相关文章

      网友评论

        本文标题:Linux字符处理总结

        本文链接:https://www.haomeiwen.com/subject/wsxixctx.html