zoukankan      html  css  js  c++  java
  • Linux 命令详解(二)awk 命令

    AWK是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。

    语法:

    awk [选项参数] 'script' var=value file(s)
    或
    awk [选项参数] -f scriptfile var=value file(s)

    基本用法:

    用法一:

    新建一个log.txt 文件

    2 this is a test
    3 Are you like awk
    This's a test
    10 There are orange,apple,mongo

    命令(格式):

    awk '{[pattern] action}' {filenames}   # 行匹配语句 awk '' 只能用单引号

    (1)每行按空格或TAB分割,输出文本中的1、4项

     $ awk '{print $1,$4}' log.txt
     ---------------------------------------------
     2 a
     3 like
     This's
     10 orange,apple,mongo

    (2) 格式化输出

     $ awk '{printf "%-8s %-10s
    ",$1,$4}' log.txt
     ---------------------------------------------
     2        a
     3        like
     This's
     10       orange,apple,mongo

     用法二:

    awk -F  #-F相当于内置变量FS, 指定分割字符

     使用","分割

     $  awk -F, '{print $1,$2}'   log.txt
     ---------------------------------------------
     2 this is a test
     3 Are you like awk
     This's a test
     10 There are orange apple
    使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
     $ awk -F '[ ,]'  '{print $1,$2,$5}'   log.txt
     ---------------------------------------------
     2 this test
     3 Are awk
     This's a
     10 There apple

     用法三:

    awk -v  # 设置变量

     $ awk -va=1 '{print $1,$1+a}' log.txt
     ---------------------------------------------
     2 3
     3 4
     This's 1
     10 11
     $ awk -va=1 -vb=s '{print $1,$1+a,$1b}' log.txt
     ---------------------------------------------
     2 3 2s
     3 4 3s
     This's 1 This'ss
     10 11 10s

     用法四:

    awk -f {awk脚本} {文件名}



     

  • 相关阅读:
    分层开发的优势
    分层开发的特点
    三层开发遵循的原则
    为什么需要分层
    什么是JNDI
    为什么需要JavaBean
    连接池中的连接对象是由谁创建的呢?
    什么是连接池技术
    为什么使用连接池?(为什么要使用JNDI)
    Servlet加载
  • 原文地址:https://www.cnblogs.com/tinywan/p/7228873.html
Copyright © 2011-2022 走看看