5分鐘帶你瞭解Linux awk命令!

老男孩IT教育機構發表於2022-04-12

  awk是一種程式語言,也是Linux下的一個檔案管理命令,用於處理資料非常簡單、便捷。但很多人對這個命令瞭解的並不多,對此小編特整理了這篇文章,只需要5分鐘讓你輕鬆瞭解Linux awk命令,還在等什麼?趕快學習吧!

  awk是一個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。

  awk有三個不同的版本:awk、nawk和gawk,未作特別說明,一般指gawk,gawk是awk的GNU版本。

  之所以叫awk是因為其取了三位創始人Alfred Aho,Peter Weinberger,和Brian Kernighan的Family Name 的首字元。

  使用方法:

  awk'{pattern+action}'{filenames}

  儘管操作可能會很複雜,但語法總是這樣,其中pattern表示awk在資料中查詢的內容,而action是在找到匹配內容時所執行的一系列命令。花括號({})不需要在程式中始終出現,但它們用於根據特定的模式對一系列指令進行分組。pattern就是要表示的正規表示式,用斜槓括起來。

  awk語言的最基本功能是在檔案或者字串中基於指定規則瀏覽和抽取資訊,awk抽取資訊後,才能進行其他文字操作。完整的awk指令碼通常用來格式化文字檔案中的資訊。

  通常,awk是以檔案的一行為處理單位的。awk每接收檔案的一行,然後執行相應的命令,來處理文字。

  呼叫awk的三種方式

  1、命令列方式

  awk[-F field-separator]'commands'input-file(s)

  其中,commands是真正awk命令,[-F域分隔符]是可選的。input-file(s)是待處理的檔案。

  在awk中,檔案的每一行中,由域分隔符分開的每一項稱為一個域。通常,在不指名-F域分隔符的情況下,預設的域分隔符是空格。

  2、shell指令碼方式

  將所有的awk命令插入一個檔案,並使awk程式可執行,然後awk命令直譯器作為指令碼的首行,一遍透過鍵入指令碼名稱來呼叫。

  相當於shell指令碼首行的:#!/bin/sh

  可以換成:#!/bin/awk

  3、將所有的awk命令插入一個單獨檔案,然後呼叫:

  awk-f awk-script-file input-file(s)

  其中,-f選項載入awk-script-file中的awk指令碼,input-file(s)跟上面的是一樣的。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2886718/,如需轉載,請註明出處,否則將追究法律責任。

相關文章