linux awk命令详解
时间: 2023-10-12 22:20:33 浏览: 173
awk是一个强大的文本处理工具,可以在Linux下使用。它可以根据指定的规则对文本文件进行处理,例如查找、替换、格式化等。
以下是awk命令的一些详解:
1. 命令格式
awk 'pattern {action}' filename
其中,pattern为匹配模式,如果匹配成功,则执行相应的action动作。filename为要处理的文件名。
2. 匹配模式
awk的匹配模式可以使用正则表达式,例如:
- /pattern/:匹配包含pattern的行。
- /^pattern/:匹配以pattern开头的行。
- /pattern$/:匹配以pattern结尾的行。
- /pattern1|pattern2/:匹配包含pattern1或pattern2的行。
3. 动作
awk的动作可以是一条或多条命令,用花括号{}括起来。例如:
- {print $0}:打印整行。
- {print $1}:打印第一个字段。
- {printf "%s %s\n", $1, $2}:格式化输出第一、二个字段。
4. 字段
awk默认将行按照空格分割成多个字段,可以使用$1、$2等表示不同的字段。例如:
- $0:整行。
- $1:第一个字段。
- $NF:最后一个字段。
5. 内置变量
awk还有一些内置变量,可以在脚本中使用。
- FS:字段分隔符,默认为“空格”。
- OFS:输出字段分隔符,默认为“空格”。
- NR:当前行号。
- NF:当前行的字段数。
6. 示例
以下是一个awk的处理示例:
假设有一个文件test.txt,内容如下:
```
apple 2.5
orange 3.0
banana 1.8
```
要求输出其中价格大于2.0的水果名称和价格,可以使用以下awk命令:
```
$ awk '$2>2.0 {print $1,$2}' test.txt
```
输出结果如下:
```
apple 2.5
orange 3.0
```
这条命令的意思是,如果第二个字段大于2.0,则打印第一、二个字段。
阅读全文