zoukankan      html  css  js  c++  java
  • 【sed & awk 第二版笔记】以州和人名排列_P38

    [root@nhserver1 02]# cat list
    John Daggett, 341 King Road, Plymouth MA
    Alice Ford, 22 East Broadday, Richmond VA
    Orville Thomas, 11345 Oak Brideg Road, Tulsa OK
    Terry Kalkas, 402 Lans Road, Beaver Falls PA
    Eric Adams, 20 Post Raod, Sudbury MA
    Hubert Sims, 328A Brook Road, Roanoke VA
    Amy Wilde, 334 Bayshore Pkwy, Mountain View CA
    Sal Carpenter, 73 6th Street, Boston MA

    [root@nhserver1 02]# cat nameState
    s/ MA/, Massachusetts/
    s/ PA/, Pennsylvania/
    s/ CA/, California/
    s/ VA/, Virginai/
    s/ OK/, Oklahoma/

    [root@nhserver1 02]# cat byState
    #! /bin/sh
    awk -F, '{
            print $4 ", " $0
            }' $* |
    sort |
    awk -F, '
    $1 == LastState {
            print " " $2
    }
    $1 != LastState {
            LastState = $1
            print $1
            print " " $2
    }'

    说明:

    $* :所有参数列表,它将所有的引用变量视为一个整体。在此将它删除无大碍

    sort :对州进行排序很关键,为下边的awk语句提供基础数据

    LastState = $1:重要的赋值语句

    $1 == LastState :对是否同州做判断

    [root@nhserver1 02]# sed -f nameState list | ./byState
     California
             Amy Wilde
     Massachusetts
             Eric Adams
             John Daggett
             Sal Carpenter
     Oklahoma
             Orville Thomas
     Pennsylvania
             Terry Kalkas
     Virginai
             Alice Ford
             Hubert Sims

  • 相关阅读:
    爬虫的简单运用
    预测体育竞技比赛结果(新人练手)
    自己的第一个网页
    科学计算和可视化(numpy及matplotlib学习笔记)
    面向对象总结
    PIL库的总结及运用
    jirba库的使用和好玩的词云
    第一次结队作业
    四则运算版本升级
    自动生成小学四则运算项目练习(已更新)
  • 原文地址:https://www.cnblogs.com/nhlinkin/p/3549155.html
Copyright © 2011-2022 走看看