本文介绍了用awk NR可变困惑:文件格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新来的awk编程和对使用NR变量的有点糊涂了。

我的code是...

 的awk'BEGIN {K = NR;} {printf的(%s%s%S%S \\ n,$ K,$(K + 1),$(K +2),$(K + 3))}'AUTH_DATA

$猫AUTH_DATA

  6262 6530 6661 3162 6364 6264 6561 3430 3033 3332 6536 3139 6230 6261 61
30 3637 0A00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000

输出:

  6262 6530 6661 3162 6364 6264 6561 3430 3033 3332 6536 3139 6230 6261 6130
3637 0A00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 6262 6530 6661

但我想要的是输出应该是格式为:

  6262 6530 6661 3162 6364 6264 6561 3430
  3033 3332 6536 3139 6230 6261 6130 3637
  0A00 0000 0000 0000 0000 0000 0000 0000
  0000 0000 0000 0000 0000 0000 0000 0000


解决方案

我猜你在找什么是NF,不是NR。

从联机帮助:

NR is actual line number, but in this problem, you want to do some trick on field idx, not lines.

Also, I thought your input data should be in one line in file 'auth_data', right?

if it is so, you could try

awk '{for(i=1;i<=NF;i++)if(i%8==0)print $i;else printf $i" "}' auth_data

check the test below:

kent$  echo "6262 6530 6661 3162 6364 6264 6561 3430 3033 3332 6536 3139 6230 6261 6130 3637 0A00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000"|\
awk '{for(i=1;i<=NF;i++)if(i%8==0)print $i;else printf $i" "}'
    6262 6530 6661 3162 6364 6264 6561 3430
    3033 3332 6536 3139 6230 6261 6130 3637
    0A00 0000 0000 0000 0000 0000 0000 0000
    0000 0000 0000 0000 0000 0000 0000 0000

And back to the problem, if you just want to do the formatting, xargs is enough. see below:

kent$  echo "6262 6530 6661 3162 6364 6264 6561 3430 3033\
        3332 6536 3139 6230 6261\
        6130 3637 0A00 0000 0000 \
        0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000"|xargs -n8

output:

6262 6530 6661 3162 6364 6264 6561 3430
3033 3332 6536 3139 6230 6261 6130 3637
0A00 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

you can cat yourFile|xargs -n8 or xargs -n8 -a yourfile

这篇关于用awk NR可变困惑:文件格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-08 20:01