#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}'