AWK

  awk不仅仅时linux系统中的一个命令,而且是一种编程语言,可以用来处理数据和生成报告

 处理的数据可以是一个或多个文件,可以是来自标准输入,也可以通过管道获取标准输入

  awk可以在命令行上直接编辑命令进行操作,也可以编写成awk程序来进行更为复杂的运用。

-F 指定分隔符

  • 行(记录):默认以 (回车换行)结束。而这个行的结束不就是记录分隔符嘛。
  • 所以在awk中,RS(记录分隔符)变量表示着行的结束符号(默认是回车换行)
  • 在工作中,我们可以通过修改RS变量的值来决定行的结束标志,最终来决定“每行”的内容。
    为了方便人们理解,awk默认就把RS的值设置为“ ”

让所有单词排成一列,这样每个单词都是单独的一行

1)设置RS值为空格
2)将文件里面的所有空格替换为回车换行符“ ”
3)grep所有连续的字母,grep -o参数让他们排成一列。

方法一:

  1. awk 'BEGIN{RS="[ ]+"}{print $0}' count.txt | sort |uniq -c|sort
  2. cat count.txt | tr " " " " | sort | uniq -c | sort
  3. grep -o "[a-zA-Z]+" count.txt | sort | uniq -c | sort
  1. NR存放着每个记录的号(行号)读取新行时候会自动+1
  2. RS是输入数据的记录的分隔符,简单理解就是可以指定每个记录的结尾标志。
  3. RS作用就是表示一个记录的结束
  4. 当我们修改了RS的值,最好配合NR(行)来查看变化,也就是修改了RS的值通过NR查看结果,调试awk程序。
  5. ORS输出数据的记录的分隔符
  6. RS是输入记录分隔符,决定awk如何读取或分隔每行(记录)
  7. ORS表示输出记录分隔符,决定awk如何输出一行(记录)的,默认是回车换行( )
  8. FS是输入区域分隔符,决定awk读入一行后如何再分为多个区域。
  9. OFS表示输出区域分隔符,决定awk输出每个区域的时候使用什么分隔她们。
  10. awk无比强大,你可以通过RS,FS决定awk如何读取数据。你也可以通过修改ORS,OFS的值指定awk如何输出数据。
原文地址:https://www.cnblogs.com/grrr/p/9874143.html