本文主要是介绍awk_常用参数汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
awk 是一个强大的文本处理工具,其中特殊变量用于管理和操作文本。以下是对你提到的变量的详细解释和示例:
NR:当前处理的行号。
NF:当前行的字段数。
FS:输入字段的分隔符。
OFS:输出字段的分隔符。
FNR:每个文件中独立计数的行号。
RS:输入记录的分隔符。
ORS:输出记录的分隔符。
- NR(Number of Records)
NR 表示当前处理的记录数(行号),它从1开始,处理每行时自动递增。
示例:
apple
banana
cherry
命令:
awk '{print NR, $0}' file.txt
输出:
1 apple
2 banana
3 cherry
每行的行号通过 NR 输出。
- NF(Number of Fields)
NF 表示当前记录中的字段数(列数)。
示例: 假设 file.txt 文件内容如下:
apple orange banana
apple orange
命令:
awk '{print $0, "- 字段数:", NF}' file.txt
输出:
apple orange banana - 字段数: 3
apple orange - 字段数: 2
- FS(Field Separator,输入字段分隔符)
FS 是定义输入字段分隔符的变量,默认分隔符是空格或制表符。你可以通过 -F 参数指定分隔符,或者在脚本中直接定义 FS。
示例: 假设 file.txt 内容如下:
apple,orange,banana
apple,orange
命令:
awk -F, '{print $1, $2}' file.txt
输出:
apple orange
apple orange
在这个例子中,使用逗号作为分隔符。
- OFS(Output Field Separator,输出字段分隔符)
OFS 是指定输出字段的分隔符,默认是空格。你可以在脚本中定义它。
示例:
apple orange banana
apple orange
命令:
awk 'BEGIN {OFS="-"} {print $1, $2, $3}' file.txt
输出:
apple-orange-banana
apple-orange-
注意,输出的字段之间用 - 分隔。
- FNR(File Number of Records)
FNR 是每个文件中记录的行号。与 NR 不同,FNR 在处理多个文件时,每个文件从1开始计数。
示例:
file1.txt:
apple
bananafile2.txt:
cherry
date
命令:
awk '{print FNR, $0}' file1.txt file2.txt
输出:
1 apple
2 banana
1 cherry
2 date
FNR 在每个文件中独立计数。
- RS(Record Separator,输入记录分隔符)
RS 是输入记录的分隔符,默认是换行符。你可以将其设置为其他字符,使 awk 按照指定的字符分隔记录。
示例:
apple banana;orange cherry;grape lemon
命令:
awk 'BEGIN {RS=";"} {print NR, $0}' file.txt
输出:
1 apple banana
2 orange cherry
3 grape lemon
此例中,RS 被设置为分号 ;,将记录分隔为3部分。
- ORS(Output Record Separator,输出记录分隔符)
ORS 是输出记录的分隔符,默认是换行符。
示例:
apple orange
banana cherry
命令:
awk 'BEGIN {ORS=";"} {print $1, $2}' file.txt
输出:
apple orange;banana cherry;
ORS 被设置为分号 ;,所以每个记录的输出以 ; 结尾。
- NF(Number of Fields)
NF 表示每行的字段数(列数),通常用于循环或者判断当前行有多少个字段。
示例:
apple orange banana
apple orange
命令:
awk '{print NF}' file.txt
输出:
3
2
这篇关于awk_常用参数汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!