Linux命令——awk的基本使用

1,简介

  awk 是一种处理文本文件的语言,是一个强大的文本分析工具。

  awk 其实不仅仅是工具软件,还是一种编程语言。

  awk 是以文件的一行内容为处理单位的。awk读取一行内容,然后根据指定条件判断是否处理此行内容,若此行文本符合条件,则按照动作处理文本,否则跳过此行文本,读取下一行进行判断。

2,基本用法

  condition:条件。若此行文本符合该条件,则按照 action 处理此行文本。不添加条件时则处理每一行文本;

  action:动作。按照动作处理符合要求的内容。一般用于打印指定的内容信息;

  注意下面的引号为英文的单引号

2.1 处理指定文件的内容
  awk    'condition { action }'    filename
2.2 处理某个命令的执行结果
  command  |  awk   ' condition { action }'

3,案例

F(指定字段分隔符)
默认使用空格作为分隔符

3.1 处理指定文件的内容

cat  log.txt

2 this is a test
3 Are you like awk
This's a test
10 There are orange,apple,mongo

3.1.1 每行按空格或TAB分割(默认情况),输出文本中的1、4项
 awk '{print $1,$4}' log.txt
---------------------------------------------
2   a
3   like
This's
10   orange,apple,mongo
---------------------------------------------

3.1.2 格式化输出
 awk '{printf "%-8s %-10s ",$1,$4}' log.txt
---------------------------------------------
2   a
3   like
This's
10   orange,apple,mongo

---------------------------------------------

3.1.3 指定其它符号分割

log.txt的内容如下:
#2,this,is,a,test
 3 Are you like awk


 awk -F, '{print $1,$2}' log.txt
---------------------------------------------
2   this
3   Are you like awk

---------------------------------------------

3.2 处理某个命令的执行结果

[root@localhost awk]# echo "aa bb cc dd ee ff" | awk '{print $1}'
aa
[root@localhost awk]# echo "aa bb l cc dd l ee ff" | awk -F 'l' '{print $1}'
aa bb
[root@localhost awk]# echo "aa bb cc : dd ee ff" | awk -F ':' '{print $1}'
aa bb cc

原文地址:https://www.cnblogs.com/gezp/p/12575229.html