zoukankan      html  css  js  c++  java
  • awk点滴

    1. $0存储整行,NF给出一行的字段数,NR是当前的行数:echo -e "1 2 3\n4 5 6"|awk 'NF<=3 {print $1 NR}'
    2. awk使用选项 -v 调用shell变量:a=1; b=2; echo -e "1\n2"|awk -v x=$a -v y=$b '$1==x {print $0 y}'  #每调用一次shell变量,都要加一个-v参数;
    3. awk把linux文本文件转化成windows文本文件,linux文本文件默认的换行符是 \n,windows文本文件默换行符为 \r\n : awk 'BEGIN{ORS="\r\n"} {print}' linux.txt>windows.txt
    4. 指定文件中的行:awk 'NR>=2&&NR<=10 {print}' file
    5. 对文本z指定列求和:awk 'BEGIN {sum=0};{sum += $1};END {print sum}' file
      对符合某些条件的行按列求和:awk 'BEGIN {sum=0}; /RE/ {sum += $2};END {print sum}'
    6. awk -v RS="" '{print $(NF)}' file,显示最后一行
      awk -v RS="" '{print $(NF-1)}' file,显示倒数第二行
      awk -v RS="" '{print $(NF-2)}' file,显示倒数第三行
    7. awk 去除第一行和最后一行
      awk 'NR>2{print p}{p=$0}' urfile
      第一行时, NR=1, 不执行print, p=第一行的内容
      第二行时, NR=2, 不执行print, p=第二行的内容
      第三行时, NR=3, 执行print p,此时p=第二行的内容, 即打印第二行, 然后p=第三行
      ............
      最后一行时, 执行print p, 打印倒数第二行, 然后p=最后一行
      也就是去除了第一行和最后一行

    8. awk   '{sub(/good/,"bad"); print $0}'只把每行的第一个good替换为bad

      awk   '{gsub(/good/,"bad"); print $0}'把每一行的所有good替换为bad

      sed  '/fell/ s/good/bad/g'

      awk   '{if(/fell/) gsub(/good/,"bad"); print $0 }'只在出现字符串fell字符串的前提下,将找到的行中的good替换为bad

      sed '/fell/ !s/good/bad/g'

      awk '{if(!/fell/) gsub(/good/,"bad"); print $0 }'只在不出现字符串fell字符串的前提下,将找到的行中的good替换为bad

      sed 's/good/bad/g;s/fell/bad/g;s/sun/bad/g'

      sed 's/good\|fell\|sun/bad/g'

      awk '{gsub(/good|fell|sun/,"bad") ; print $0}'不管是good、fell还是sun,一路替换为bad

       

       



  • 相关阅读:
    TypeScript--变量
    TypeScript--Hello
    前端跨域的方式
    内存泄漏与垃圾回收机制
    前端拷贝
    React生命周期16版本
    Redux三大原则
    IE6常见CSS解析Bug及hack
    Redux的应用
    vue-router-基础
  • 原文地址:https://www.cnblogs.com/mphyfin/p/2215475.html
Copyright © 2011-2022 走看看