天天看點

sed awk 筆記(二)

都說sed awk 運維人員的必備工具、今天起開始整理相關筆記、首先認識一下這兩個東西。

共性:使用相同的文法 [address]/pattern/action/flag

    都是面向字元流的、從一個檔案一次銀行的讀取輸入、并輸出到标準輸出、即輸入驅動的

    都是使用正規表達式進行模式比對的

    都允許使用者在腳本中指定指令

是以個人認為有幾個方面需要突破:文法、正則、編寫腳本的思路

[root@hack test]#今天寫的腳本顯示洲及所在州的人名

#! /bin/sh

awk -F "," '{ print $4","$0 }'  $* | sort | 

awk -F "," '

$1 == LastState { print "\t\t"$2 } 

$1 != LastState { LastState = $1;print $1;print "\t\t"$2 }'

list檔案

John Daggett,341 King Road,Plymouth MA

Alice Ford,22 East Broadway,Richmond VA

Terry Kalkas,402 Lans Road,Beaver Falls PA

Amy Wilde,334 Bayshore Pkwy,Mountain View CA

Eric Adans,20 Post Road,Sudbury MA

Sal Carpenter,73 6th Street,Boston MA

sedscr處理檔案

s/ MQ/, mqwwqdhuw355w/

s/ MA/, MMMMMMMMMMMM/

s/ PA/, Penccccccccccc/

s/ CA/, California/

s/ VA/, Virginia/

s/ OK/, Oklahoma/

指令 sed -f sedscr | byState 輸出

 California

                Amy Wilde

 MMMMMMMMMMMM

                Eric Adans

                John Daggett

                Sal Carpenter

 Penccccccccccc

                Terry Kalkas

 Virginia

                Alice Ford

這個地方有一個就是如何把自己寫的shell程式設計可執行的程式

chmod +x byState 賦予執行權限

./byState或者 bash byState 執行

如果提示byState不是可執行程式 export PATH=$PATH:/home/test  #my byState in /home/test/

本文轉自 aklaus 51CTO部落格,原文連結:http://blog.51cto.com/aklaus/1763223