awk入门
linux之a(chǎn)wk文本處理入門
1、awk簡介
awk是一種編程語言,用于linux下對文本和數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)可以來來自標(biāo)準(zhǔn)輸入、一個(gè)或多個(gè)文件,或其他命令的輸出。
更多作為腳本來使用。
awk處理數(shù)據(jù)的方式:逐行掃描文件,尋找匹配的特定模式的行,并在這些行上進(jìn)行你想要的操作。如果沒有指定動作,則把匹配的行顯示到標(biāo)準(zhǔn)輸出(屏幕)。如果沒有指定模式,則所有被操作所指定的行都被處理。
2、awk 兩種語法格式
awk [options] ‘commands’ filenames
awk [options] -f awk-script-file filenames
== options:
-F 定義輸入字段分隔符,默認(rèn)的分割符號是空格或者制表符
[root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@localhost ~]# awk '{print $1}' /etc/hosts //獲取hosts文件的第一列 127.0.0.1 ::1 [root@localhost ~]# awk '{print $1}' /etc/passwd //默認(rèn)分隔符為空格或者\(yùn)t root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin[root@localhost ~]# awk -F ":" '{print $1}' /etc/passwd //指定分隔符為: root bin daemon== command:
| 行處理前(發(fā)生在讀文件之前) | 行處理 | 行處理后 |
| 通常用于定義一些變量,例如BEGIN{FS=’:’;OFS=’—’} FS:字段分隔符 OFS:Out of Field Separator,輸出字段分隔符 |
== awk命令格式
awk ‘pattern’ filename
實(shí)例:awk ‘/root/’ /etc/passwd //正則表達(dá)式
awk ‘{action}’ filename
實(shí)例:awk ‘{print $1}’ /etc/passwd //action模式
awk ‘pattern {action}’ filename
實(shí)例:awk ‘/root/{print $1}’ /etc/passwd
awk 'BEGIN{FS=":"} ‘/root/{print $1}’ /etc/passwd
command | awk ‘pattern {action}’
實(shí)例:df -P |grep ‘/’ |awk ‘$4>25000{print $4}’ //管道模式
總結(jié)
- 上一篇: 【caffe】找不到gpu/mxGPUA
- 下一篇: 最长单调递增子序列_最长递增子序列(动态