awk中NF和NR以及$NF和!NF的用法详解
时间: 2024-02-03 11:14:57 浏览: 100
在awk中,NF和NR是两个内置变量,分别表示当前记录(行)中的字段数和当前处理的记录(行)数。而$NF表示当前记录(行)中的最后一个字段,!NF则表示当前记录(行)中是否有字段。
具体用法如下:
1. NF:
在awk的处理过程中,每个记录(行)被分割成若干个字段,这些字段可以通过$1, $2, $3, …, $NF来引用。而NF就是表示当前记录的字段数,可以在程序中使用。
例如,如果要打印每行的字段数,可以使用以下命令:
```
awk '{print NF}' file.txt
```
2. NR:
NR表示当前处理的记录(行)数,可以在程序中使用。例如,如果要打印文件的行号,可以使用以下命令:
```
awk '{print NR, $0}' file.txt
```
其中$0表示当前记录(行)的全部内容。
3. $NF:
$NF表示当前记录(行)中的最后一个字段。例如,下面的命令会打印每行的最后一个字段:
```
awk '{print $NF}' file.txt
```
4. !NF:
!NF表示当前记录(行)中是否有字段。如果当前记录中没有字段,则!NF为真,否则为假。例如,如果想打印没有字段的行,可以使用以下命令:
```
awk '!NF' file.txt
```
上述命令将打印文件中所有没有字段的行。
总之,NF和NR是awk中常用的内置变量,可以帮助我们进行字符串处理和统计。而$NF和!NF则可以用来引用当前记录(行)的最后一个字段和判断当前记录(行)是否有字段。
相关问题
awk中nr、fnr、nf、$nf、fs、ofs的说明
- `NR` 表示已经读入的记录数(即当前处理的是第几行),它是一个全局变量,从1开始计数,每读入一条记录就会自动加1。
- `FNR` 表示当前文件中已经读入的记录数,它是一个局部变量,只对当前文件有效,从1开始计数,每次读入一条记录就会自动加1。
- `NF` 表示当前记录中的字段数(即当前行有多少个字段),它也是一个局部变量,只对当前行有效。
- `$NF` 表示当前记录的最后一个字段。
- `FS` 表示字段分隔符,默认是空格或制表符。
- `OFS` 表示输出字段分隔符,默认也是空格。
linux awk命令 $nf
在Linux awk命令中,$NF代表的是当前行的最后一个字段的内容。与之相对,NF代表的是当前行的字段个数。所以当使用{print $NF}时,会输出当前行的最后一个字段的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [LINUX - awk命令之NF和$NF区别 (转)](https://blog.csdn.net/weixin_30352191/article/details/96490661)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [LINUX - awk命令之$NF的应用](https://blog.csdn.net/u013380694/article/details/129157777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)