-
-
awk命令的另类理解
-
发表于:
2023-1-1 09:59
7728
-
Awk命令是Linux三剑客命令之一,其基本用法,本文不会细提,本文主要是从记录个人的一些特别理解,与各位大神交流。本人做嵌入式开发,Linux用得不多,理解不正确地方,请各位多多指教。
Awk命令整体来说,是以一个矩阵的角度去看待文本的,这里就有个行和列的概念,也就是说,你在使用AWK命令时,要在心里默认矩阵这个前提的存在,即使你意识不到他的存在。
以矩阵看待文本,也就是说,有分割符,有了分割符号才会产生行列的概念。行的概念好理解,毕竟一个文本就是多行的,列的概念可以说,就是分割符,或者说:在awk中,列=分割符。分割符不同,则产生的列数也为相同,你处理的数据源也就不同了。
所以Awk,你又可以叫做:可定制化的文本矩阵(行列)处理器
Awk命令的使用时,有个前提:你处理的哪些列或是全部的列,默认处理全部的列。
比如你处理如下文件(这是看到浩道Linux公众号,产生的感想,所以这里直接使用公众号里的文本了):
Haodao1 haodao2 # haodao3
Haodao4 haodao5 # haodao6
Haodao7 haodao8 # haodao9
命令1:
Awk ‘{print $1}’
解析:你没有指定行,所以是所有行,输出所有行的第1列
命令2:
Awk ‘NR==2, NR==3 {print $1}’
解析:你指定了行,所以只输出第2和第3行的第1列。
命令3:
Awk –F “#” ‘{print $1}’
解析:指定了新的分割符,则矩阵形式变了.
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)