shell编程总结14(gawk初级)
shell编程总结14(gawk初级)
心中的理想乡 发表于10个月前
shell编程总结14(gawk初级)
  • 发表于 10个月前
  • 阅读 14
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

说明一下。现在到后面的几个章节,可学习的内容不多了。对于sed与gawk这两个重量级的东西,我在最近的项目工具上面看到了他们的身影(主要是awk,gawk他爹)。对于文本的自动化shell编程处理,躲不开要用到这些个高级的工具。我像在这个地方,我就拆开进行总结学习,学多了首先记不住两个工具的具体用法,其次无法马上用起来。我在这里,选择gawk来先学习。这一章总结主要总结一下gawk的基础。
1、基本的命令格式:
    gawk option program file
        选项:
            -F fs 指定行中分割数据段的字段分隔符
            -f file 指定读取程序的文件名
            -v var=value 定义gawk程序中的一个变量及其默认值
            -mf N 指定要处理的数据文件中的最大字段数
            -mr N 指定数据文件中的最大数据行数
            -W keyword 指定gwak的兼容模式或警告等级

2、基本的使用:
    gawk '{print "Hello World!"}'
    说明:这个执行之后由于没有指定输入的文件,所以命令行会一直处在交互的状态,一直在等待标准输入往里面输入值,每次输入值之后,都会执行单引号里面的程序(里面可以说是一个小型的脚本语言程序吧)
3、gawk的基本特性之一是它处理文本文件中数据的能力。他会自动给每行中的每个数据元素分配一个变量。默认情况下的变量分配如下:
    $0代表整个文本行
    $1代表文本行中的第一个数据字段
    $2代表文本行中的第二个数据字段
    $n代表文本行中的第n个数据字段
每个数据字段在文本行中都是通过字段分隔符来划分的。

4、直接从文件中读取程序来处理文本文件数据
文件中的程序:
{print $1 "'s home directory is " $6}
执行命令:
gawk -F: -f programFile /etc/passwd
在这里用到了一个-F的选项,主要用来指定,每一个行中的分割字段的分隔符是什么
5、在数据处理之前运行脚本与之后运行的脚本
    举例:    
        BEGIN{
            print "The latest list of users and shells"
            print "UserId        shell"
            print "------        ------"
            FS=":"
        }
        {
            print $1 "        " $7
        }
        END{
            print "This concludes the listing"
        }
        运行脚本:
        gawk -f programFile /etc/passwd

共有 人打赏支持
粉丝 0
博文 60
码字总数 46203
×
心中的理想乡
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: