linux中awk命令
时间: 2023-09-03 12:15:45 浏览: 123
awk命令是一种文本处理工具,用于从文本文件或标准输入中读取数据并进行处理和输出。它使用一种类似于C语言的语法,可以进行文本搜索、数据过滤、格式化输出等操作。
基本语法:
```
awk [选项参数] '条件1{动作1} 条件2{动作2} ...' 文件名
```
常用选项:
- -F:指定分隔符,默认为制表符。
- -v:定义变量。
- -f:将awk脚本放在一个文件中,通过该选项指定该文件。
常用变量:
- $0:表示整个行。
- $1、$2、$3...:表示行中第1、2、3...个字段。
- NR:表示处理的是第几行数据。
- NF:表示当前行的字段数。
常用操作:
- print:打印输出。
- printf:格式化输出。
- if/else:条件语句。
- for/while:循环语句。
- getline:读取下一行数据。
示例:
1. 查找文件中包含“hello”的行并输出该行的内容。
```
awk '/hello/{print}' filename.txt
```
2. 查找文件中第3列大于10的行并输出该行的内容。
```
awk '$3>10{print}' filename.txt
```
3. 统计文件中每行的字段数并输出。
```
awk '{print NF}' filename.txt
```
4. 将文件中每个单词的首字母转换为大写,并输出。
```
awk '{for(i=1;i<=NF;i++){sub(".",substr(toupper($i),1,1),$i)}}{print}' filename.txt
```
5. 计算文件中每个单词出现的次数并输出。
```
awk '{for(i=1;i<=NF;i++){a[$i]+=1}}END{for(i in a){print i,a[i]}}' filename.txt
```
阅读全文