#1. 过滤空白行awk 'NF' file               #2. 过滤重复行awk '!a[$0]++' file               #3. 过滤掉最后两列awk 'NF-=2' file               #4. 过滤掉从第一个匹配行到文件尾awk '/匹配/{a=1}!a'  fileawk '/匹配/{a=1}a'  file               #5. 打印从第一个匹配行到文件尾awk '/匹配/,0' file               #6. 打印匹配行和下一行awk '/匹配/{getline v;print $0"\n"v}' file               #7. 打印匹配行和上一行awk '/匹配/{print v"\n"$0}{v=$0}' file               #8. 打印匹配行和上两行awk '/匹配/{print a"\n"b"\n"$0}{a=b;b=$0}' file               #9. 打印匹配的上一行awk '/匹配/{print x};{x=$0}' file               #10. 打印匹配的下一行awk '/匹配/{getline;print}' file               #11. 打印从第一个匹配A行至第一个匹配B行awk '/匹配A/,/匹配B/' file               #12. 仅过滤第一次匹配行awk '/匹配/&&!a++{next}1' file               #13. 两行合并成一行打印awk '{printf NR%2?$0FS:$0RS}' file               #14. 每3行插一行空行awk 'ORS=NR%3?"\n":"\n\n"'  file               #15. 打印奇数行awk 'a=!a' file               #16. 打印偶数行awk '!(a=!a)'  file               #17. 调换奇偶行打印文本awk 'BEGIN{OFS="\n"}{getline a;print a,$0}' file               #18. 模拟wc -lawk 'END{print NR}' file               #19. 打印单引号,print后边依次为:双引号单引号转义单引号单引号双引号awk 'BEGIN{print "'\''"}' file               #20. 打印双引号,print后边依次为:双引号转义双引号双引号awk 'BEGIN{print "\""}' file               #21. 以一个空行为每段文本的分割标准,统计每段文本的行数awk 'BEGIN{RS="";FS="\n"}{print NF}' file               #22. 以一个空行为每段文本的分割标准,把一段文字整合成一行awk -vRS="\n\n" -vOFS=" " '$1=$1' file               #23. 列交换awk  '{a=$2;$2=$4;$4=a}1' file               #24. 计算小数4舍5入awk -F . 'substr($2,0,1)>=5?a=$1+1:a=$1{print a}' file               #25. 打印包含中文的行awk '/[^!-~]/' file               #26. 这个不解释了会上一个就会这个了,重点说一下执行这个名列前最好执行下LANG=Cawk '/[!-~]/' file               #27. 模拟tail -2awk '{y=x "\n" $0; x=$0};END{print y}' file               #28. 打印最后一行最后一个单词awk 'NF{a=$NF}END{print a}' file               #29. 过滤file中的倒数第3、4行awk -va=$(grep -c "" file) '(NR!=a-2&&NR!=a-3)'  file               #30. 只保留file的第一列(危险直接修改文件内容)awk '{print $1 > "file"}' file               #31. 模拟date +%Tawk 'BEGIN{now=strftime("%T");print now}'