awk 'i=1;BEGIN{while(i<=5){print i;i++};exit}' 为什么while循环停止了,但是为什么需要exit
时间: 2023-04-06 12:04:44 浏览: 91
这是一个技术问题,可以回答。while循环停止是因为i的值在第五次循环时变成了6,不再满足i<=5的条件,所以循环停止。而exit语句是用来强制退出awk程序的,因为在这个例子中,如果没有exit语句,awk程序会继续执行,直到读取完整个输入文件或者遇到错误才会退出。
相关问题
echo $(df -h)|awk 'BEGIN{FS=" "}''{i=1; while(i<=NF) {print $i;i++}}' 这段代码为什么不能按照正常df -h显示
这段代码是将 df -h 命令的输出结果通过管道符传递给 awk 命令进行处理,其中 BEGIN{FS=" "} 表示在处理之前将 awk 的分隔符设置为空格。接着,i=1 表示将变量 i 的初始值设置为 1,while 循环中的语句则表示在 i 不大于 NF(即 awk 处理的行的字段数)的情况下,输出第 i 个字段并将 i 的值加 1。因此,这段代码会将 df -h 命令的输出结果中的每个字段单独输出,而不是按照正常的 df -h 显示方式进行显示。
comm -12 arg_rdb.txt cal_rdb.txt | while read line; do awk -v pattern="$line" 'BEGIN{matched=0} $0 ~ pattern {matched=1} matched && NR <= FNR+4 {print >> "arg_drdb"} matched && NR > FNR && NR <= FN done哪里错了
这段代码中有几个问题:
1. `FN` 变量未定义,应该是 `FNR`。
2. `FN` 变量后面的条件应该是 `NR <= FNR + 8`,因为你要复制 `FNR` 行及其后面的 7 行。
3. `awk` 命令的输出没有被重定向到文件中,应该在命令末尾添加 `>> arg_drdb`。
修改后的代码如下:
```
comm -12 arg_rdb.txt cal_rdb.txt | while read line; do
awk -v pattern="$line" 'BEGIN{matched=0} $0 ~ pattern {matched=1} matched && NR <= FNR+8 {print >> "arg_drdb"} matched && NR > FNR && NR <= FNR+8' >> arg_drdb
done
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)