Linux如何使用文本處理工具awk
awk是Linux中的文本處理工具,類似于shell編程語言,擁有屬于自己的語言,下面學(xué)習(xí)啦小編就給大家介紹下Linux中awk文本處理工具的用法,感興趣的朋友可以來了解一下。
調(diào)用方式
1.命令行
awk [-F field-separator] ‘commands’ input-file(s)
commands是真正awk命令,[-F域分隔符]是可選的。input-file(s) 是待處理的文件。在awk中,文件的每一行中,由域分隔符分開的每一項稱為一個域。通常,在不指名-F域分隔符的情況下,默認(rèn)的域分隔符是空格(或者tab)。
2.shell腳本方式
將所有的awk命令插入一個文件,并使awk程序可執(zhí)行,然后awk命令解釋器作為腳本的首行,以便通過鍵入腳本名稱來調(diào)用。相當(dāng)于shell腳本首行的:#!/bin/sh 可以換成:#!/bin/awk -f
3.將所有的awk命令插入一個單獨(dú)文件,然后調(diào)用:awk -f awk-script-file input-file(s)其中,-f選項加載awk-script-file中的awk腳本,input-file(s)跟上面的是一樣的。
內(nèi)置變量
ARGC:命令行參數(shù)個數(shù)
ARGV:命令行參數(shù)排列
ENVIRON:UNIX環(huán)境變量
ERRNO:UNIX系統(tǒng)錯誤消息
FILENAME:awk瀏覽的文件名
OFMT:數(shù)字的輸出格式 %.6g
FNR:瀏覽文件的記錄數(shù)
FS:設(shè)置輸入域分隔符,等價于命令行 -F選項
NF:瀏覽記錄的域的個數(shù)
NR:已讀的記錄數(shù),就是行號,從1開始
FNR:當(dāng)前記錄數(shù)
OFS:輸出域分隔符
ORS:輸出記錄分隔符
RS:控制記錄分隔符
Linux如何使用文本處理工具awk
awk是Linux中的文本處理工具,類似于shell編程語言,擁有屬于自己的語言,下面學(xué)習(xí)啦小編就給大家介紹下Linux中awk文本處理工具的用法,感興趣的朋友可以來了解一下。
調(diào)用方式
1.命令行
awk [-F field-separator] ‘commands’ input-file(s)
commands是真正awk命令,[-F域分隔符]是可選的。input-file(s) 是待處理的文件。在awk中,文件的每一行中,由域分隔符分開的每一項稱為一個域。通常,在不指名-F域分隔符的情況下,默認(rèn)的域分隔符是空格(或者tab)。
2.shell腳本方式
將所有的awk命令插入一個文件,并使awk程序可執(zhí)行,然后awk命令解釋器作為腳本的首行,以便通過鍵入腳本名稱來調(diào)用。相當(dāng)于shell腳本首行的:#!/bin/sh 可以換成:#!/bin/awk -f
3.將所有的awk命令插入一個單獨(dú)文件,然后調(diào)用:awk -f awk-script-file input-file(s)其中,-f選項加載awk-script-file中的awk腳本,input-file(s)跟上面的是一樣的。
內(nèi)置變量
ARGC:命令行參數(shù)個數(shù)
ARGV:命令行參數(shù)排列
ENVIRON:UNIX環(huán)境變量
ERRNO:UNIX系統(tǒng)錯誤消息
FILENAME:awk瀏覽的文件名
OFMT:數(shù)字的輸出格式 %.6g
FNR:瀏覽文件的記錄數(shù)
FS:設(shè)置輸入域分隔符,等價于命令行 -F選項
NF:瀏覽記錄的域的個數(shù)
NR:已讀的記錄數(shù),就是行號,從1開始
FNR:當(dāng)前記錄數(shù)
OFS:輸出域分隔符
ORS:輸出記錄分隔符
RS:控制記錄分隔符
Linux如何使用文本處理工具awk
輸出函數(shù)
print:參數(shù)可以是變量、數(shù)值或者字符串。字符串必須用雙引號引用,參數(shù)用逗號分隔。如果沒有逗號,參數(shù)就串聯(lián)在一起而無法區(qū)分。這里,逗號的作用與輸出文件的分隔符的作用是一樣的,只是后者是空格而已
printf:其用法和c語言中printf基本相似,可以格式化字符串,輸出復(fù)雜時,printf更加好用,代碼更易懂。具體格式如下:
%d 十進(jìn)制有符號整數(shù)
%u 十進(jìn)制無符號整數(shù)
%f 浮點(diǎn)數(shù)
%s 字符串
%c 單個字符
%p 指針的值
%e 指數(shù)形式的浮點(diǎn)數(shù)
%x %X 無符號以十六進(jìn)制表示的整數(shù)
%o 無符號以八進(jìn)制表示的整數(shù)
%g 自動選擇合適的表示法
獲取外部變量
1.獲取普通外部變量
awk ‘{action}’ 變量名=變量值
2.BEGIN程序塊中變量
awk –v 變量名=變量值 [–v 變量2=值2 …] ‘BEGIN{action}’
3.環(huán)境變量
需要用到內(nèi)置變量ENVIRON實(shí)現(xiàn)