用awk編寫Shell指令碼

來源:互聯網
上載者:User

一、概述

1. 產品概述:

awk是一種程式設計語言,用於在linux/unix下對文本和資料進行掃描與處理。資料可以來自標準輸入、檔案、管道。

awk分別代表其作者姓氏的第一個字母。因為它的作者是三個人,分別是Alfred Aho、Peter Weinberger、Brian Kernighan。

實際上awk有很多種版本,如:awk、nawk、mawk、gawk、MKS awk、tawk...  這其中有開源產品也有商業產品。

目前在Linux中常用的awk編譯器版本有mawk,gawk,其中以RedHat為代表使用的是gawk,以Ubuntu為代表使用的是mawk。

gawk是GNU Project 的awk解譯器的開原始碼實現。

本文將以gawk作為講解工具。

2. 原理:

1). awk漸進式掃描檔案,從第一行到最後一行,尋找匹配特定模式的行,並在這些行上進行你想要的操作。

2). awk基本結構包括模式比對(用於找到要處理的行)和處理過程(即處理動作)。

  pattern  {action}

# 提示:awk讀取檔案內容的每一行時,將對比改行是否與給定的模式相匹配,如果匹配則執行處理過程,否則對該行不做任何處理。

如果沒有指定處理指令碼,則把匹配的行顯示到標準輸出,即預設處理動作是print列印行;

如果沒有指定模式比對,則預設匹配所有資料。

3). awk有兩個特殊的模式:BEGIN和END,他們被放置在沒有讀取任何資料之前以及在所有資料讀取完成以後執行。

3. awk流程圖:

提示:awk將檔案中的每一行當作一條記錄,並將記錄分割為若干欄位,預設以空格或定位字元為分隔字元。

如This   is   a    test    file.    將分割為5個欄位,awk可以對這5個欄位進行分別處理。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.