设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 手机 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

Linux文本分析命令awk的妙用(2)

发布时间:2019-03-21 17:38 所属栏目:117 来源:佚名
导读:显示/etc/passwd中有daemon的行 awk-F':''$0~/daemon/'/etc/passwd ##输出为 daemon:x:2:2:daemon:/sbin:/sbin/nologin awk条件操作符 4、支持流程控制语句,类C语言 if while do/while for break continue 输出第

显示/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

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读