如何在json文件中打印带有JQ输出的行号

如何在json文件中打印带有JQ输出的行号,json,jq,Json,Jq,我知道有a-n选项,并尝试了许多组合,但无法使其工作。我想打印json文件的行号和每行的长度 cat -n traffictest.json | jq '. |length' jq -C . | cat -n traffictest.json | jq '. |length' 如果您只对行号和长度感兴趣,我会使用awk,例如: awk '{ print NR, length, $0 }' traffictest.json 或者,如果要保持语法高亮显示: paste <(jq .

我知道有a-n选项,并尝试了许多组合,但无法使其工作。我想打印json文件的行号和每行的长度

cat -n traffictest.json | jq '. |length'

jq -C . | cat -n traffictest.json | jq '. |length'

如果您只对行号和长度感兴趣,我会使用
awk
,例如:

awk '{ print NR, length, $0 }' traffictest.json
或者,如果要保持语法高亮显示:

paste <(jq    . traffictest.json | awk '{ print NR, length }' OFS='\t') \
      <(jq -C . traffictest.json)

pastejq有一个内置的过滤器,
input\u line\u number
,它发出正在读取的输入的行号。例如,给定此输入:

[1,2]

"abcd"

{"a":1,"b":1,"c":1,"d":1, "e":1}
调用:

jq -r "\(input_line_number): \(length)" 
收益率:

1: 2
3: 4
5: 5

-n选项与行编号无关。另外,请提供一个带有预期输出的示例输入。请参阅stackoverflow.com/help/mcve–2小时前达到峰值