歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Unix文本處理工具之awk

Unix文本處理工具之awk

日期:2017/2/28 14:44:10   编辑:Linux教程

Unix命令行下輸入的命令是文本,輸出也都是文本。因此,掌握Unix文本處理工具是很重要的一種能力。awk是Unix常用的文本處理工具中的一種,它是以其發明者(Aho,Weinberger和Kernighan)的名字首字符命名的,是一種基於模式匹配檢查輸入然後將期望的匹配結果處理後輸出到屏幕的文本數據處理工具。

1、awk命令格式

awk ‘模式 {操作}’ 文件1 文件2 ……

awk命令的工作過程是這樣的:對於每一個輸入文件,逐行對其進行檢查,如果該行和awk命令參數的‘模式’部分匹配,則對該行執行命令參數‘{操作}’部分所代表的操作。下面是一個簡單的例子:

$cat awk_test.txt
1 a a,b,d,f
2 b alsdjf,apple,kdjf
3 c 163.2.201.1
4 d www.linuxidc.com
5 e http://www.linuxidc.com/Linuxit
$awk 'NR==1{print}' awk_test.txt
1 a a,b,d,f

上面的例子中,用awk命令輸出了awk_test.txt文件的第一行,其中命令的模式部分所用的NR是awk命令的內建變量,代表文件的行號。這樣,便可以對所有行號為1的行進行打印輸出。

2、常用的內建變量

變量 含義 NR 當前處理行的行號 FS 字段分隔,默認為空格或TAB $n 當前處理行的第n個字段 $0 當前處理行的全部內容

這裡要解釋下字段的含義:在awk的使用中,字段分隔符將文件的一行分隔為各個部分,每一個部分稱為一個字段,從左到右分別為第1個字段,……,第n個字段,其中,第0個字段是指這一整行。字段分隔符如果沒有特殊指定,則默認為空格或tab制表符。

Copyright © Linux教程網 All Rights Reserved