Saya memiliki file input ini { "description": "this is a fake description", "owner": "john", "region": "us-east-1", "topics&...

1
mbtamuli 9 April 2021, 09:02

2 jawaban

Jawaban Terbaik

Anda dapat menggunakan walk:

walk(if type=="object" and .suffix_name 
     then .suffix_name |= sub("[.]fifo$";"") else . end)

Atau, cukup gunakan |=:

 (.. | select(type == "object" and .suffix_name) | .suffix_name) 
  |=  sub("[.]fifo$";"") 
1
peak 9 April 2021, 06:40

Alternatif untuk walk menggunakan fungsi path - getpath dan setpath

reduce ( paths | select(.[-1] | endswith("suffix_name")? ) ) as $p 
  ( .; setpath($p; getpath($p) | sub("[.]fifo$";"") ) )

Identifikasi jalur dari akar ke suffix_name dan ulangi menggunakan reduce. Untuk setiap jalur, rekonstruksi nilainya dengan menghilangkan sufiks.

0
Inian 9 April 2021, 06:37