91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

文件處理器之——awk

發布時間:2020-07-31 04:48:02 來源:網絡 閱讀:53808 作者:wx5d3fd1efe40e3 欄目:系統運維

一、awk簡介:

awk 是一種編程語言,用于在 linux/unix 下對文本和數據進行處理。數據可以來自標準輸入、一個或多個文件,或其它命令的輸出。它支持用戶自定義函數和動態正則表達式等先進功能,是linux/unix下的一個強大編程工具。它在命令行中使用,但更多是作為腳本來使用。

awk 的處理文本和數據的方式是這樣的,它逐行掃描文件,從第一行到最后一行,尋找匹配的特定模式的行,并在這些行上進行你想要的操作。如果沒有指定處理動作,則把匹配的行顯示到標準輸出(屏幕),如果沒有指定模式,則所有的操作的所指定的行都被處理。

二、awk的兩種形式語法格式

awk?[options]?'commands'?filenames???//過濾并輸出文件符合條件的內容
awk?[options]?-f?awk-script-file?filenam??????//從腳本中調用編輯指令,過濾并輸出內容

options:

-F??定義輸入字段分隔符,。默認的分隔符是空格或制表符(tab)

commands

BEGIN{}?{}?END{}
行處理前?行處理?行處理后
BEGIN{}?通常用于定義一些變量,例如?BEGIN{FS=":";OFS="---"}

使用BEGIN語句設置計數和打印頭。BEGIN語句使用在任何文本瀏覽動作之前,之后文本瀏覽動作依據輸入文本開始執行,END語句用來在awk完成文本瀏覽動作后打印輸出文本總數和結尾狀態。

awk命令格式

awk?'pattern'?filename??????????示例:awk?-F:?'/root/'?/etc/passwd?
awk?'{action}'?filename?????????示例:awk?-F:?'{print?$1}'?/etc/passwd?
awk?'pattern?{action}'?filename?示例:awk?-F:?'/root/{print?$1,$3}'?/etc/passwd?
????????????????????????????????示例:awk?'BEGIN{FS=":"}?/root/{print?$1,$3}'?/etc/passwd
command?|awk?'pattern?{action}'?示例:df?-P|?grep?'/'?|awk?'$4?>?25000?{print?$4}'

三、awk工作原理

#?awk?-F:?'{print?$1,$3}'?/etc/passwd

(1)awk 使用一行作為輸入,并將這一行賦給內部變量$0,每一行也可稱為一個記錄,以換行符結束

(2)然后,行被:(默認為空格或制表符)分解成字段(或域),每個字段存儲在已編號的變量中,從$1 開始,最多達 100 個字段

(3)awk 如何知道用空格來分隔字段的呢? 因為有一個內部變量 FS 來確定字段分隔符。初始時,FS 賦為空格

(4)awk 打印字段時,將以設置的方法使用 print 函數打印,awk 在打印的字段間加上空格,因為$1,$3 之間有一個逗號。逗號比較特殊,它映射為另一個內部變量,稱為輸出字段分隔符 OFS,OFS 默認為空格

(5)awk 輸出之后,將從文件中獲取另一行,并將其存儲在$0 中,覆蓋原來的內容,然后將新的字符串分隔成字段并進行處理。該過程將持續到所有行處理完畢

文件處理器之——awk

四、awk內建變量

FS:指定每行文本的字段分隔符,默認為空格或制表位。(-F)
NF:當前處理的行的字段個數。
NR:當前處理的行的行號(序數)。
$0:當前處理的行的整行內容。
$n:當前處理行的第?n?個字段(第?n?列)。
FILENAME:被處理的文件名。RS:數據記錄分隔,默認為\n,即每行為一條記錄。


文件處理器之——awk

文件處理器之——awk

五、格式化輸出

print函數

#?date?|awk?'{print?"Month:?"?$2?"\nYear:?"?$NF}'
#?awk?-F:?'{print?"username?is:?"?$1?"\t?uid?is:?"?$3}'?/etc/passwd
#?awk?-F:?'{print?"\tusername?and?uid:?"?$1,$3?"!"}'?/etc/passwd

文件處理器之——awk

printf 函數

#?awk?-F:?'{printf?"%-15s?%-10s?%-15s\n",?$1,$2,$3}'?/etc/passwd
#?awk?-F:?'{printf?"|%-15s|?%-10s|?%-15s|\n",?$1,$2,$3}'?/etc/passwd

%s 字符類型

%d 數值類型

占 15 字符

- 表示左對齊,默認是右對齊

printf 默認不會在行尾自動換行,加\n

文件處理器之——awk

===========================

六、awk模式

1、正則表達式

匹配記錄(整行):

#?awk?'/^alice/'?/etc/passwd
#?awk?'$0?~?/^alice/'?/etc/passwd
#?awk?'!/alice/'?passwd
#?awk?'$0?!~?/^alice/'?/etc/passwd

匹配字段:匹配操作符(~? ? ?!~)

#?awk?-F:?'$1?~?/^alice/'?/etc/passwd
#?awk?-F:?'$NF?!~?/bash$/'?/etc/passwd

文件處理器之——awk

2、比較表達式:

比較表達式采用對文本進行比較,只有當條件為真,才執行指定的動作。比較表達式使用關系運算符,

用于比較數字與字符串。


關系運算符

運算符 含義 示例

<?小于?x<y
<=?小于或等于?x<=y
==?等于?x==y
!=?不等于?x!=y
>=?大于等于?x>=y
>?大于?x>y
#?awk?-F:?'$3?==?0'?/etc/passwd
#?awk?-F:?'$3?<?10'?/etc/passwd
#?awk?-F:?'$7?==?"/bin/bash"'?/etc/passwd
#?awk?-F:?'$1?==?"alice"'?/etc/passwd
#?awk?-F:?'$1?~?/alice/?'?/etc/passwd
#?awk?-F:?'$1?!~?/alice/?'?/etc/passwd
#?df?-P?|?grep?'/'?|awk?'$4?>?25000'

文件處理器之——awk

3、條件表達式:

#?awk?-F:?'$3>300?{print?$0}'?/etc/passwd
#?awk?-F:?'{?if($3>300)?print?$0?}'?/etc/passwd
#?awk?-F:?'{?if($3>300)?{print?$0}?}'?/etc/passwd
#?awk?-F:?'{?if($3>300)?{print?$3}?else{print?$1}?}'?/etc/passwd

文件處理器之——awk

4、算術運算:+ - * / %(模) ^(冪 2^3)

可以在模式中執行計算,awk 都將按浮點數方式執行算術運算

#?awk?-F:?'$3?*?10?>?500'?/etc/passwd
#?awk?-F:?'{?if($3*10>500){print?$0}?}'?/etc/passwd

文件處理器之——awk

5、邏輯操作符和復合模式

&&?邏輯與?a&&b
||?邏輯或?a||b
!?邏輯非?!a
#?awk?-F:?'$1~/root/?&&?$3<=15'?/etc/passwd
#?awk?-F:?'$1~/root/?||?$3<=15'?/etc/passwd
#?awk?-F:?'!($1~/root/?||?$3<=15)'?/etc/passwd

文件處理器之——awk

6、范圍模式

#?awk?'/Tom/,/Suzanne/'?filename

示例

1、統計系統給用戶數

文件處理器之——awk

2、統計用戶名為4個字符的用戶

文件處理器之——awk

3、自定義變量。查詢root用戶

文件處理器之——awk

4、獲得網卡IP(出ipv6以外的所有IP)

文件處理器之——awk


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

左权县| 眉山市| 锡林浩特市| 通渭县| 鱼台县| 贵州省| 晋中市| 香格里拉县| 宁陵县| 广宗县| 平阴县| 南投县| 邓州市| 江达县| 庄浪县| 休宁县| 沅陵县| 息烽县| 九龙坡区| 苗栗市| 天水市| 苏尼特左旗| 扶沟县| 雷州市| 宜都市| 江阴市| 太仆寺旗| 定陶县| 绍兴县| 金湖县| 文水县| 碌曲县| 兴业县| 东阳市| 成安县| 萨迦县| 黄龙县| 郎溪县| 正宁县| 孝感市| 遂宁市|