gawk:在每隔一行更改第5个元素

时间:2013-12-17 05:24:53

标签: printing awk line gawk

我想在每隔一行的第5个元素前面添加一个换行符(\ n):

2, 0, 0, 0, 2
4, 0, 0, 0, 4
6, 0, 0, 0, 6
8, 0, 0, 0, 8

...为了得到:

2, 0, 0, 0, 2
4, 0, 0, 0, \n4
6, 0, 0, 0, 6
8, 0, 0, 0, \n8

到目前为止我在gawk中所做的不起作用:

gawk '{if (NR % 2) {$5=\n$5; print} else print}'

1 个答案:

答案 0 :(得分:1)

你可以说:

awk '{NR%2 || $5="\\n"$5 }1' filename

请注意,您需要转义\才能获得文字\

为了您的输入,它会产生:

2, 0, 0, 0, 2
4, 0, 0, 0, \n4
6, 0, 0, 0, 6
8, 0, 0, 0, \n8

或者,(正如@WilliamPursell指出的那样),你可以说:

awk '!(NR%2) {$5="\\n"$5 }1' filename