如何使用awk从特定行开始打印每第n行的+3行?

时间:2016-04-28 13:37:51

标签: unix awk

因此,从第2行开始,我想打印以下3行,并为每个第16行做同样的事情,直到我的文件结束。到目前为止,我所拥有的只是:

    awk 'NR % 16 ==2' 

我在添加“打印以下3行”部分时遇到了麻烦。有什么建议?

4 个答案:

答案 0 :(得分:4)

智能计数器..

$ awk 'NR%16==2{c=4} c&&c--' <(seq 40)
2
3
4
5
18
19
20
21
34
35
36
37

答案 1 :(得分:1)

这应该有效:

        ............
        Summariser summer = null;
        String summariserName = JMeterUtils.getPropDefault(
                "summariser.name", "summary");
        if (summariserName.length() > 0) {
            summer = new Summariser(summariserName);
        }

    //  String TestResut=Summariser.format(null,null,null);
        String csvFile = "filePath";
        MyResultCollector csvlogger = new MyResultCollector(summer);
        csvlogger.setFilename(csvFile);
        testPlanTree.add(testPlanTree.getArray()[0], csvlogger);

        // Run Test Plan
        jmeter.configure(testPlanTree);

        jmeter.run();

答案 2 :(得分:1)

您可以试试sed

sed -n '2~16{N;N;N;p}' file

答案 3 :(得分:0)

试试这个:

input.txt

实施例

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

$ awk 'BEGIN{flag=0;count=0}NR%16==2{flag=1;print;next}flag{print;++count}count==3{count=0;flag=0}' input.txt

使用:

2
3
4
5
18
19
20
21

<强>输出:

parmeter