awk_常用参数汇总

awk 是一个强大的文本处理工具,其中特殊变量用于管理和操作文本。以下是对你提到的变量的详细解释和示例:

NR:当前处理的行号。
NF:当前行的字段数。
FS:输入字段的分隔符。
OFS:输出字段的分隔符。
FNR:每个文件中独立计数的行号。
RS:输入记录的分隔符。
ORS:输出记录的分隔符。
  1. NR(Number of Records)
    NR 表示当前处理的记录数(行号),它从1开始,处理每行时自动递增。

示例:

apple
banana
cherry
命令:
awk '{print NR, $0}' file.txt
输出:
1 apple
2 banana
3 cherry
每行的行号通过 NR 输出。
  1. 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
  1. FS(Field Separator,输入字段分隔符)
    FS 是定义输入字段分隔符的变量,默认分隔符是空格或制表符。你可以通过 -F 参数指定分隔符,或者在脚本中直接定义 FS。

示例: 假设 file.txt 内容如下:

apple,orange,banana
apple,orange
命令:
awk -F, '{print $1, $2}' file.txt
输出:
apple orange
apple orange
在这个例子中,使用逗号作为分隔符。
  1. OFS(Output Field Separator,输出字段分隔符)
    OFS 是指定输出字段的分隔符,默认是空格。你可以在脚本中定义它。

示例:

apple orange banana
apple orange
命令:
awk 'BEGIN {OFS="-"} {print $1, $2, $3}' file.txt
输出:
apple-orange-banana
apple-orange-
注意,输出的字段之间用 - 分隔。
  1. FNR(File Number of Records)
    FNR 是每个文件中记录的行号。与 NR 不同,FNR 在处理多个文件时,每个文件从1开始计数。

示例:

file1.txt:
apple
banana

file2.txt:
cherry
date
命令:
awk '{print FNR, $0}' file1.txt file2.txt
输出:
1 apple
2 banana
1 cherry
2 date
FNR 在每个文件中独立计数。
  1. 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部分。
  1. ORS(Output Record Separator,输出记录分隔符)
    ORS 是输出记录的分隔符,默认是换行符。

示例:

apple orange
banana cherry
命令:
awk 'BEGIN {ORS=";"} {print $1, $2}' file.txt
输出:
apple orange;banana cherry;
ORS 被设置为分号 ;,所以每个记录的输出以 ; 结尾。
  1. NF(Number of Fields)
    NF 表示每行的字段数(列数),通常用于循环或者判断当前行有多少个字段。

示例:

apple orange banana
apple orange
命令:
awk '{print NF}' file.txt
输出:
3
2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值