如何在json文件中使用JQ的输出打印行号

时间:2017-04-24 18:08:58

标签: json jq

我知道有一个-n选项并尝试了很多组合,但无法让它发挥作用。我想打印json文件的行号和每行的长度

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

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

2 个答案:

答案 0 :(得分:1)

jq有一个内置过滤器input_line_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

答案 1 :(得分:0)

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

awk '{ print NR, length, $0 }' traffictest.json

或者如果你想保持语法高亮:

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