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哪里错了
时间: 2024-02-10 10:13:33 浏览: 54
Prolific USB-to-Serial Comm Port_3.0.1.0_2-12-2007_10.0_x64.zip
这段代码中有几个问题:
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
```
阅读全文