“`” 参考回答:
1)作用:
样式扫描和处理语言。它允许创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
2)用法:
awk [-F field-separator] 'commands' input-file(s)
3)内置变量
<figure><table>
<thead>
<tr><th>ARGC</th><th>命令行参数个数</th></tr></thead>
<tbody><tr><td>ARGV</td><td>命令行参数排列</td></tr><tr><td>ENVIRON</td><td>支持队列中系统环境变量的使用</td></tr><tr><td>FILENAME</td><td>awk浏览的文件名</td></tr><tr><td>FNR</td><td>浏览文件的记录数</td></tr><tr><td>FS</td><td>设置输入域分隔符,等价于命令行 -F选项</td></tr><tr><td>NF</td><td>浏览记录的域的个数</td></tr><tr><td>NR</td><td>已读的记录数</td></tr><tr><td>OFS</td><td>输出域分隔符</td></tr><tr><td>ORS</td><td>输出记录分隔符</td></tr><tr><td>RS</td><td>控制记录分隔符</td></tr></tbody>
</table></figure>
4)实例:
1、找到当前文件夹下所有的文件和子文件夹,并显示文件大小
> ls -l | awk '{print 5 ""\t""9}'
读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域。0则表示所有域,1表示第一个域,n表示第n个域。默认域分隔符是""空白键"" 或 ""[tab]键""。
2、找到当前文件夹下所有的文件和子文件夹,并显示文件大小,并显示排序
<pre><code>> ls -l | awk 'BEGIN {COUNT = -1; print ""BEGIN COUNT""}
{COUNT = COUNT + 1; print COUNT""\t""5""\t""9}
END {print ""END, COUNT = ""COUNT}'
</code></pre>
先处理BEGIN, 然后进行文本分析,进行第二个{}的操作,分析完进行END操作。
3、找到当前文件夹下所有的子文件夹,并显示排序
> ls -l | awk 'BEGIN {print ""BEGIN COUNT""} /4096/{print NR""\t""5""\t""9}
END {print ""END""}'
* /4096/ 正则匹配式子
* 使用printNF可以打印出一行中的最后一个字段,使用$(NF-1)则是打印倒数第二个字段,其他以此类推。
<pre><code> "“`
Was this helpful?
0 /
0