2017-06-20 52 views
13

Używam jq do parsowania pliku JSON, jak pokazano here. Jednak wyniki dotyczące wartości ciągów zawierać „cudzysłów” Zgodnie z oczekiwaniami, jak pokazano na stronieJak usunąć podwójne cudzysłowy w wyjściu jq do parsowania plików json w bash?

$ cat json.txt | jq '.name' 
$ "Google" 

Jak mogę to rura do innego polecenia, aby usunąć „”? dostaję więc

$ cat json.txt | jq '.name' | some_other_command 
$ Google 

Którą komendę mogę użyć?

+0

FYI, 'cat foo | bar 'jest znacznie mniej efektywny niż' bar

+0

Innym przykładem przypadku, w którym różnica jest duża, jest 'cat foo | wc -c', vs 'wc -c

Odpowiedz

30

Użyj opcji -r emitować surowe ciągi jako wyjście:

jq -r '.name' <json.txt 
+0

Dziękujemy! Użyłem dokładnie tej składni. –