awk命令
awk是一个很优秀的处理文本中的行和列的工具。
Awk命令被Unix/Linux用户广泛用于文本处理文件。
它具有搜索关键字/字符串的功能。
还可以和regex表达式一起使用。
指定字段分隔符
awk命令默认的分割符是空格。
我们可以使用其他字符,比如分号(;)、冒号(:)、逗号(,)、制表符、空格等作为字段分隔符。
awk命令有一个–field-separator
的选项。 简写是 -F
。
语法:
awk -F'separator' '{print $column-number-N}' /path/file-name
从/etc/passwd打印第1列、第6列和第7列。
awk -F':' '{print ,,}' /etc/passwd
输出如下:
root /root /bin/bash bin /bin /sbin/nologin daemon /sbin /sbin/nologin adm /var/adm /sbin/nologin lp /var/spool/lpd /sbin/nologin
在Unix/Linux系统中,经常使用awk命令来处理有一定格式的文本信息中的列。
使用awk命令处理文本文件中的列
创建一个测试文件
[root@onitroad ~]# ls -l / > /tmp/test.txt [root@onitroad ~]# cat /tmp/test.txt total 20 lrwxrwxrwx. 1 root root 7 Sep 30 13:39 bin -> usr/bin dr-xr-xr-x. 5 root root 4096 Sep 30 14:07 boot drwxr-xr-x. 19 root root 3220 Sep 30 06:34 dev drwxr-xr-x. 139 root root 8192 Sep 30 06:19 etc drwxr-xr-x. 3 root root 18 Sep 30 14:02 home lrwxrwxrwx. 1 root root 7 Sep 30 13:39 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Sep 30 13:39 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 Apr 11 2018 media drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt drwxr-xr-x. 3 root root 16 Sep 30 13:52 opt dr-xr-xr-x. 219 root root 0 Sep 30 06:33 proc dr-xr-x---. 6 root root 198 Sep 30 06:20 root drwxr-xr-x. 42 root root 1260 Sep 30 06:37 run lrwxrwxrwx. 1 root root 8 Sep 30 13:39 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 Apr 11 2018 srv dr-xr-xr-x. 13 root root 0 Sep 30 06:34 sys drwxrwxrwt. 19 root root 4096 Oct 1 02:51 tmp drwxr-xr-x. 13 root root 155 Sep 30 13:39 usr drwxr-xr-x. 20 root root 282 Sep 30 14:06 var
打印某一列
语法:
awk '{print $column-number}' /path/file-name
示例:打印第2列
awk '{print }' /tmp/test.txt
-F:
表示使用冒号做分隔符
示例:打印第4列
awk '{print }' /tmp/test.txt
打印多列
打印多个列需要逗号(,)分隔多个列。
语法:
awk '{print $column-number1,$column-number2,$column-number-N'} /path/file-name
示例:打印第2列、第3列和第5列
awk '{print ,,}' /tmp/test.txt
输出如下:
20 1 root 7 5 root 4096 19 root 3220 139 root 8192 3 root 18
使用awk命令打印整个文件
使用awk命令打印整个文件 类似于“cat file-name”`
语法:
awk '{print ##代码##}' /path/filename
$0 匹配整行。
日期:2019-08-20 17:58:06 来源:oir作者:oir