awk入门
linux之awk文本處理入門
1、awk簡介
awk是一種編程語言,用于linux下對文本和數據進行處理。數據可以來來自標準輸入、一個或多個文件,或其他命令的輸出。
更多作為腳本來使用。
awk處理數據的方式:逐行掃描文件,尋找匹配的特定模式的行,并在這些行上進行你想要的操作。如果沒有指定動作,則把匹配的行顯示到標準輸出(屏幕)。如果沒有指定模式,則所有被操作所指定的行都被處理。
2、awk 兩種語法格式
awk [options] ‘commands’ filenames
awk [options] -f awk-script-file filenames
== options:
-F 定義輸入字段分隔符,默認的分割符號是空格或者制表符
[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 //默認分隔符為空格或者\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:
| 行處理前(發生在讀文件之前) | 行處理 | 行處理后 |
| 通常用于定義一些變量,例如BEGIN{FS=’:’;OFS=’—’} FS:字段分隔符 OFS:Out of Field Separator,輸出字段分隔符 |
== awk命令格式
awk ‘pattern’ filename
實例:awk ‘/root/’ /etc/passwd //正則表達式
awk ‘{action}’ filename
實例:awk ‘{print $1}’ /etc/passwd //action模式
awk ‘pattern {action}’ filename
實例:awk ‘/root/{print $1}’ /etc/passwd
awk 'BEGIN{FS=":"} ‘/root/{print $1}’ /etc/passwd
command | awk ‘pattern {action}’
實例:df -P |grep ‘/’ |awk ‘$4>25000{print $4}’ //管道模式
總結
- 上一篇: 【caffe】找不到gpu/mxGPUA
- 下一篇: 最长单调递增子序列_最长递增子序列(动态