AWK 进程页眉和页脚

标签 awk

我正在尝试使用 awk 脚本读取学生数据。该文件的标题行和页脚行很少。 (假设前 3 个和后 3 个) 实际的学生数据放置在页眉和页脚之间,用逗号分隔,如下所示,

姓名、年龄、地点

我想打印学生的年龄以及页眉和页脚。

示例数据:

Header 1
Header 2
Header 3
dhana,28,USA
subha,24,India
Footer 1
Footer 2
Footer 3

预期输出:

Header 1
Header 2
Header 3
28
24
Footer 1
Footer 2
Footer 3

我的代码:

BEGIN{ FS = ","}
{ 
    if(NR > 3)
    {
        print $2
    }else{
        print $0
    }
}

我的输出:

Header 1
Header 2
Header 3
28
24

我使用 NR 运算符跳过 header 。如何打印页脚并仅处理学生数据(年龄)?

最佳答案

简短的awk解决方案:

awk -F',' 'NF == 3{ $0 = $2 }1' file

输出:

Header 1
Header 2
Header 3
28
24
Footer 1
Footer 2
Footer 3

关于AWK 进程页眉和页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50536010/

相关文章:

linux - 在 Mac OS X 上使用 AWK 拆分文件

bash - 将与模式匹配的行移动到上一行

linux - 使用 sed/awk 命令找到模式后修改文本文件的内容

character-encoding - 如何使用awk读取不同编码的文件?

unix - 在 unix 中的第一行中添加一列

bash - 如何在 bash 中获取多个参数并将它们传递给 awk?

Linux awk 降序排序不起作用

shell - 打印两个图案之间的线条,如果找到某些文本则忽略这些线条

linux - 在 HTML 标签中匹配模式和替换

linux - 将文本文件转换为列