国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Linux awk 命令

2016-12-02 16:59:46 7780

簡介

AWK:三位創(chuàng)造者Aho、Weinberger和Kernighan統(tǒng)稱

官方定義:一個優(yōu)秀的樣式掃描與處理工具

定位:AWK是一種用于處理文本的編程語言工具,主要用于格式化報文或從一個大的文本文件中抽取數(shù)據(jù)提取原來文本中行的某些域進行計算組合顯示出結(jié)果

 

【掃描文件中的每一行,查找與命令行中所給定內(nèi)容相匹配的模式。如果發(fā)現(xiàn)匹配內(nèi)容,則進行下一個編程步驟。如果找不到匹配內(nèi)容,則繼續(xù)處理下一行,直到文件末尾

 

[Shell過濾工具中最難掌握的,語法復(fù)雜,錯誤提示不明確]

 

優(yōu)點:

1.處理文件中的?錄

2.簡單,解釋執(zhí)行,不必編譯(與C相比)

3.容易獲得,unix自帶(whereis awk)

模式和動作

模式部分決定了動作語句何時觸發(fā)及觸發(fā)的事件【處理語句】

模式部分可省略,則動作對每一行執(zhí)行;模式部分可以是任何條件語句、復(fù)合語句、正則表達式



命令格式及說明

格式:

語法組成:【查找  -à 執(zhí)行處理】

awk ‘pattern{action}’ filename

【注意,pattern在非括號中,用于查詢篩選匹配行,action在括號中,action是在找到匹配內(nèi)容時所執(zhí)行的一系列命令,用于對篩選后的內(nèi)容進行處理】

 

其中action內(nèi)容可擴充,也可以有多個action。
執(zhí)行順序:awk一行行讀入輸入文件,順序執(zhí)行‘’內(nèi)內(nèi)容,按模式匹配來采取動作。
其他調(diào)用:awk可用內(nèi)部變量和函數(shù),條件與循環(huán)?句,也可執(zhí)行數(shù)學(xué)運算和字符串操作。此外,可以使用BEGIN和END來執(zhí)行處理前預(yù)操作和處理后后繼操作。

格式:

awk [ -F re] [parameter...] ['prog'] [-f progfile]

 

參數(shù)說明:

-F re

允許awk更改其字段分隔符,默認(rèn)空格

A.-F參數(shù)后緊跟單個分隔符,則用雙引號“”,例如 –F”+”
B.-F參數(shù)后緊跟多個分隔符,則用單引號‘ ’并用[ ],中間順序無所謂,例如-F’[+$]’

parameter

該參數(shù)幫助為不同的變量賦值

'prog'

awk的程序語句段。這個語句段必須用單拓號:'和'括起,以防被shell解釋

-f progfile

允許awk調(diào)用并執(zhí)行progfile指定有程序文件

progfile是一個文本文件,他必須符合awk的語法

in_file

awk的輸入文件,awk允許對多個輸入文件進行處理。

值得注意的是awk不修改輸入文件。

如果未指定輸入文件,awk將接受標(biāo)準(zhǔn)輸入,并將結(jié)果顯示在標(biāo)準(zhǔn)輸出上。

awk支持輸入輸出重定向。

BEGIN{….}

{…..}

END{……}

位置:’{}’

作用:BEGIN和END的作用是給程序賦予初始狀態(tài)和在程序結(jié)束之后執(zhí)行一些掃尾的工作

  BEGIN{}:awk開始掃描輸入之前執(zhí)行 (顯示變量和預(yù)置(初始化)變量)

  END{}:在掃描完全部的輸入之后執(zhí)行 (最終結(jié)果 )

  {}:操作

 

BEGIN部分:設(shè)置計數(shù)和?印頭

END部分:打印輸出文本總數(shù)及結(jié)尾狀態(tài)標(biāo)識


調(diào)用方法

調(diào)用方式:

1

命令行;普通UNIX命令 ,用于解決簡單的問題

 

2

利用命令解釋器調(diào)用awk程序;

寫入腳本文件,并在首行加入#!/bin/awk –f ,執(zhí)行之

 

 

3

使用-f選項調(diào)用awk程序

所有awk插入一個單獨文件然后調(diào)用

awk –f awk-script-file input-files



提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: