怎么用awk输出一行字段中每一列的内容及对应的列数呢

比如我有个日志文件,一行信息有七八十个字段信息,为了方便快捷找出想要的字段列数,怎么列出所有的列内容及列数

假如有一个文本文件a.txt:

a|b||c|d|e
a2|b2||c2|d2|e2
a3|b3||c3|d3|e3

用几个命令通过管道组合起来,大概思路是取首行,替换,加行号:

head -1 a.txt | awk '{gsub(/\|/," \n")}1' | nl

可以实现你想要的效果:

1    a 
2    b 
3     
4    c 
5    d 
6    e

应该只用awk也可以实现你想要的功能,但没有深入研究下去了。

如果有帮助,请采纳。

最简单的方法就是
awk ‘{print $X,$X}’ 文件名

img


但这样只适合以空格为间隔的字段,我如果将某个数以逗号相连的话就会变成这样

img


这个时候可以使用-F参数来设置以什么为间隔 比如说

img

写的不是很透彻 希望你能get到意思