美文网首页
2018-10-18

2018-10-18

作者: 越来越好_1472 | 来源:发表于2018-10-18 23:34 被阅读0次

    10月18日任务

    9.6/9.7 awk

    awk相比sed 更支持于分段

    我们可以针对每一个段进行匹配

    cd..

    mkdir  awk

    cp /etc/passwd awk/test.txt

    cd awk

    ls

    awk -F ' : ' '{print $1}' test.txt

    如果没有-F 默认以空格或者空白为指定分隔符

    print $0表示所有段

    awk -F ' : ' '{print $1,$2,$3}' test.txt

    打印第123段

    awk -F ' : ' '{print $1“#”$2“#”$3}' test.txt

    段之间加#,用双引号取代掉,

    awk '/oo/' test.txt 列出所有oo的行,匹配出

    awk -F ' : ' $1 ~ /oo/' test.txt 匹配第一行里面的oo

    awk -F ' : ' $1 ~ /oo+/' test.txt 

    不用想grep里面加E

    sed

    awk不用加其他的符号

    也支持多个表达式一起写

    awk -F ' : ' '/root/{print$1,$3} /user/ {print $3,$4}' test.txt

    grep -E 'root|user' test.txt检查

    awk -F ":" '$3==0 ' test.txt

    awk -F ":" '$3==0 {print $1}' test.txt

    awk -F ":" '$3>="1000" {print $0}' test.txt数字上面加上双引号有区别

    awk 

    双引号里面是指的 字符,单引号指的是数字

    条件&& 并且

    条件 || 或者

    awk -F ':' '{OFS="#"} $3>1000 || $7 ~ /bash/ {print$1,$3,$7}' test.txt

    OFS NR行号  NF 段号 可以作为一个判断条件

    awk -F ' : '  ‘NR<=10’ test.txt

    awk -F ' : '  ‘NR<=10 && $1 ~ /root|sync/’ test.txt

    awk -F ' : '  ‘NR==10 && $1 ~ /root|sync/’ test.txt

    awk -F ' : '  ‘{print $NR":"$NF}' test.txt

    head -n 3 /etc/passwd | awk -F ":" '$1="root"'

    awk 可以用于写脚本

    需要反复的练习

    类似于grep -n 显示行号

    扩展

    把这里面的所有练习题做一下

    http://www.apelearn.com/study_v2/chapter14.html 

    相关文章

      网友评论

          本文标题:2018-10-18

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