加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

Linux文本分析命令awk的妙用

发布时间:2019-03-22 20:21:53 所属栏目:Windows 来源:佚名
导读:副标题#e# 0、基本用法 awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,,切开的部分再进行各种分析处理 awk命令格式如下 awk[-Ffield-separator]'commands'input-file(s) [-F 分隔符]是可选的,因

显示/etc/passwd中有daemon的行

  1. awk -F ':' '$0 ~ /daemon/' /etc/passwd  
  2. ## 输出为  
  3. daemon:x:2:2:daemon:/sbin:/sbin/nologin 

awk条件操作符

4、支持流程控制语句,类C语言

if while do/while for break continue

输出第一个字段的第一个字符大于d的行

  1. awk -F ':' '{ if ($1 > "d") { print $1 } else { print "-" } }' /etc/passwd  
  2. ## 输出为  
  3. root  
  4. -  
  5. daemon  
  6. -  
  7. lp 

可以把流程控制语句放到一个脚本中,然后调用脚本执行,如test.sh的内容如下

  1. {   
  2.     if ($1 > "d") {  
  3.         print $1   
  4.     } else {  
  5.         print "-"   
  6.     }   

用如下方式执行,效果一样

  1. awk -F ':' -f test.sh /etc/passwd  
  2. ## 输出为  
  3. root  
  4. -  
  5. daemon  
  6. -  
  7. lp  

5、应用场景

小编用awk进行文本分析比较少,主要用来写脚本

如一个weibo-interface-1.0.jar应用,启动脚本如下

start.sh

  1. nohup java -jar weibo-interface-1.0.jar >out 2>&1 & 

关闭脚本如下,kill.sh

  1. kill -9 `jps -l | grep 'weibo-interface-1.0.jar' | awk '{print $1}'` 

jps -l的输出如下

  1. 70208 com.st.kmp.main.KmpService  
  2. 31036 com.st.cis.main.BaiduAnalysisService  
  3. 66813 weibo-interface-1.0.jar 

还有就是关闭hadoop集群的所有DataNode节点(不知道hadoop的可以认为DataNode是一个集群应用),假如一个个机器jps,查看pid,kill。很麻烦,直接写了一个脚本,依次ssh到各个节点,然后执行如下命令即可

  1. kill `jps | grep 'DataNode' | awk '{print $1}'` 

jps的输出为

  1. 508 DataNode  
  2. 31481 JournalNode  
  3. 31973 NodeManager  

【编辑推荐】

  1. Linux安全:Cmd提供可视化控制用户活动
  2. 4个Linux小技巧帮你提高机器学习生产效率
  3. 如何挑选适合自己的Linux系统版本?
  4. 一文告诉你如何全方位监控Linux系统状况
  5. 如何在Linux中查看可用的网络接口
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读