当前位置: 首页 > 面试题库 >

请你来说一下awk的使用

魏冷勋
2023-03-14
本文向大家介绍请你来说一下awk的使用相关面试题,主要包含被问及请你来说一下awk的使用时的应答技巧和注意事项,需要的朋友参考一下

参考回答:

1)作用:

样式扫描和处理语言。它允许创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

2)用法:

awk [-F field-separator] 'commands' input-file(s)

3)内置变量

ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符

4)实例:

1、找到当前文件夹下所有的文件和子文件夹,并显示文件大小

> ls -l | awk '{print $5 "\t" $9}'

读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域。$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键"。

2、找到当前文件夹下所有的文件和子文件夹,并显示文件大小,并显示排序

> ls -l | awk 'BEGIN {COUNT = -1; print "BEGIN COUNT"}
{COUNT = COUNT + 1; print COUNT"\t"$5"\t"$9}
END {print "END, COUNT = "COUNT}'

先处理BEGIN, 然后进行文本分析,进行第二个{}的操作,分析完进行END操作。

3、找到当前文件夹下所有的子文件夹,并显示排序

> ls -l | awk 'BEGIN {print "BEGIN COUNT"} /4096/{print NR"\t"$5"\t"$9}

END {print "END"}'

* /4096/ 正则匹配式子

* 使用print $NF可以打印出一行中的最后一个字段,使用$(NF-1)则是打印倒数第二个字段,其他以此类推。

 

 类似资料:
  • 本文向大家介绍请你来说一下fork函数?相关面试题,主要包含被问及请你来说一下fork函数?时的应答技巧和注意事项,需要的朋友参考一下 Fork:创建一个和当前进程映像一样的进程可以通过fork( )系统调用: #include <sys/types.h> #include <unistd.h> pid_t fork(void); 成功调用fork( )会创建一个新的进程,它几乎与调用fork(

  • 本文向大家介绍请你来说一说协程?相关面试题,主要包含被问及请你来说一说协程?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、概念: 协程,又称微线程,纤程,英文名Coroutine。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。 例如: 由协程运行结果可能是12x3yz。在执行A的过程中,可以随时中断,去执行B,B也可能在

  • 本文向大家介绍请你说一下jmeter相关面试题,主要包含被问及请你说一下jmeter时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Jmeter:Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Jav

  • 本文向大家介绍请你来说一下Redis和memcached的区别相关面试题,主要包含被问及请你来说一下Redis和memcached的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)数据类型 :redis数据类型丰富,支持set liset等类型;memcache支持简单数据类型,需要客户端自己处理复杂对象 2)持久性:redis支持数据落地持久化存储;memcache不支持数据持久

  • 本文向大家介绍请你来说一下GET和POST的区别相关面试题,主要包含被问及请你来说一下GET和POST的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1、概括 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200

  • 本文向大家介绍请你来说一下堆和栈的区别?相关面试题,主要包含被问及请你来说一下堆和栈的区别?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)申请方式: 栈由系统自动分配和管理,堆由程序员手动分配和管理。 2)效率: 栈由系统分配,速度快,不会有内存碎片。 堆由程序员分配,速度较慢,可能由于操作不当产生内存碎片。 3)扩展方向 栈从高地址向低地址进行扩展,堆由低地址向高地址进行扩展。 4